可移步参考 CAS 的实现方式,这里只做普通令牌的签发演示
简单说明单点登录的概念跟应用场景
- 概念:两个系统A与B(或者多个子系统),用户登录了A系统,再通过A系统去到B系统(或者其他子系统)时默认是登录状态。
- 应用场景:淘宝与天猫两个域名不同的网站,用户A在登录了淘宝之后(游览器通过记录用户的cookies,服务器保存用户的session),通过淘宝网站跳转到天猫会直接自动登录,无需重新输入账号密码登录。
流程图
简单实现
-
网站是通过session的会话机制记录用户身份
- 主要为了解决不同域名下session不能共用的情况
- A->B,用户从A系统跳转到B系统时附带当前用户信息(这里以用户ID为例),B系统通过ID重新签发用户在B系统的访问凭证(sesssion)
-
应用是通过JWT机制签发token记录用户身份
- 解决方案与使用session的大致相同,不同应用签发token的秘钥不一样,导致用户的token只能在单应用中使用
- A->B,用户从A系统跳转到B系统时附带当前用户信息(这里以用户ID为例),B系统通过ID重新签发用户在B系统的访问凭证(token)
-
Laravel中简单实现
-- END
扫一扫,用支付宝赞赏
扫一扫,用微信赞赏
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
2020年08月31日
PHP
文章说的很好,学习了