1、总述
2、环境配置
[3、业务servers管理]
[4、用户信息同步]
[5、token的拦截、生成、验证(服务端)]
[6、概念辨析:session、cookie、token的区别与token存储]
[7、token的分享(浏览器端)]
[8、安全性措施]
[9、用户体验]
[10、性能]php
你已经知道什么是SSO了html
了解域名解析流程与hosts文件的做用前端
知道nginx代理的使用java
会启动一个web应用(python、java-web、php、node.js等等)node
本系列着重于SSO的实现,涉及到的技术主要以推荐阅读呈现。若是你不懂前提提到的点,可粗略浏览本文后去学习下技术细节再回头看,千万不要似动非懂的。另外声明,本实战是用node.js + express4.x实现的。python
咱们约定以下几个域名:nginx
id.vhost.com sso系统 负责验证登陆、注册、修改公共用户信息git
music.vhost.com 音乐应用 (同域)web
note.com 日记应用(跨域)express
添加以下内容:
127.0.0.1 id.vhost.com 127.0.0.1 music.vhost.com 127.0.0.1 note.com
咱们约定这三个server在127.0.0.1上的端口
id.vhost.com --> 127.0.0.1:3000
music.vhost.com --> 127.0.0.1:3001
note.com --> 127.0.0.1:3002
这里放一个参考配置代码,文件id.vhost.com.conf:
1 server { 2 listen 80; 3 server_name id.vhost.com; 4 charset utf-8; 5 access_log /var/log/nginx/id.vhost.com.log main; 6 location / { 7 proxy_set_header X-Real-IP $remote_addr; 8 proxy_set_header X-Forwarded-For $proxy_add_x_forwarde d_for; 9 proxy_set_header Host $http_host; 10 proxy_set_header X-NginX-Proxy true; 11 12 proxy_pass http://127.0.0.1:3000; 13 } 14 }
其他两个自行配置
使用Express Generator来生成项目
express -e --git id // 咱们使用ejs前端模板,同时添加.gitignore文件 express -e --git music express -e --git note
这样项目就生成完毕了!接下来修改启动端口。修改每一个项目的bin/www文件中的端口设置。分别为3000、300一、3002(上面已经说了)
var port = normalizePort(process.env.PORT || '3000');
而后分别启动三个项目、以及nginx。在浏览器中访问id.vhost.com、music.vhost.com、note.vhost.com。 若是都成功,配置就完成了!这样,咱们就在本地模拟出了跨域。
请支出错误之处、不足须要补充之处好让我进行修改!
大胆说出你的疑问!