2、 實現簡單Web-SSO之環境配置

目錄

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

hosts文件設置

咱們約定以下幾個域名: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

nginx代理設置

咱們約定這三個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。 若是都成功,配置就完成了!這樣,咱們就在本地模擬出了跨域。

反饋

  • 請支出錯誤之處、不足須要補充之處好讓我進行修改!

  • 大膽說出你的疑問!

推薦閱讀

相關文章
相關標籤/搜索