SSO單點登錄
### 一般的登錄原理是怎么樣的
首先http是無狀態協議,為了限制資源的獲取,需要有會話標識,處理方式為:服務端session_start,生成session_id保存客戶端游覽器中,保存用戶登錄信息到session中,之后客戶端每次訪問服務端時,都會帶上PHPSESSID的cookie值,根據PHPSESSID讀取到用戶的session,檢測session是否有登錄信息,有則為合法訪問,否則為非法訪問

### 如何實現多系統單點登錄
我們知道會話標識依賴于session,而session依賴于cookie,但是cookie是有域名限制的,而我們的多系統一般是用不同的域名,即用戶訪問不同的域名,生成的PHPSESSID的值是不一樣的,而我們要做的就是讓不同域名能夠共享同個會話,這里就需要借助第三方來保存游覽器和第三方的會話,然后讓不同的子系統重定向到第三方時,其實就相當于游覽器直接和第三方交互,所以,只要在第三方保存游覽器登錄成功的會話,其他子系統重定向到第三方時,就能夠共享同個會話,這樣就可以實現單點登錄了
### sso開源項目
- 一個系統一個broker
- 一個用戶訪問系統時,生成唯一標識token(只生成一次)
- 重定向到oss-server
- broker+tokern作為鍵,游覽器PHPSESSIID作為值,保存到oss-server全局變量,其實就是建立游覽器和系統的關聯關系
- 只要是同個游覽器訪問oss-server,PHPSESSID都是一樣的
- 若系統登錄,則在oss-server設置用戶信息session,$_SESSION['sso_user'] = $username

- php
- 編譯安裝
- 基本概念
- 垃圾回收機制
- 生命周期
- zval底層實現
- c擴展開發
- gdb調試工具
- 自定義擴展簡單demo
- 鉤子函數
- 讀取php.ini配置
- 數組
- 函數
- 類
- yaf擴展底層源碼
- swoole擴展底層源碼
- memoryGlobal內存池
- swoole協程使用記錄
- 單點登錄sso原理
- compser使用
- session實現機制
- c & linux
- gcc
- 指針
- 結構體,聯合和位字段
- 宏定義井號說明
- printf家族函數和可變參數
- 共享函數
- 靜態庫和動態庫
- makefile自動化構建
- 信號一
- 信號二
- inotify監控文件事件
- socket編程
- 簡介
- UNIX DOMAIN
- Internet DOMAIN
- TCP/IP
- 文件IO多路復用
- 內存管理
- 進程組,會話和控制終端
- daemon守護進程
- 多進程
- 多線程
- 常用進制轉換
- go
- 入門知識
- 字節和整數裝換
- python
- redis
- 應用場景
- 消息隊列
- 熱點數據
- 掃碼登錄
- 訂閱發布
- 次數限制
- 搶購超賣
- 持久化機制
- mysql
- 工作流程
- MyISAM和InnoDB區別
- 用戶和權限管理
- 執行計劃
- sql優化
- 事務和鎖
- 慢查詢日志
- case...when...then...end用法
- sql
- 參考
- linux
- 內核參數優化
- 防火墻設置
- docker
- docker入門知識
- 算法
- 多維數組合
- DFA算法
- 紅包金額分配