Better late than never.

单点登录sso

可移步参考 CAS 的实现方式,这里只做普通令牌的签发演示

简单说明单点登录的概念跟应用场景

  • 概念:两个系统A与B(或者多个子系统),用户登录了A系统,再通过A系统去到B系统(或者其他子系统)时默认是登录状态。
  • 应用场景:淘宝与天猫两个域名不同的网站,用户A在登录了淘宝之后(游览器通过记录用户的cookies,服务器保存用户的session),通过淘宝网站跳转到天猫会直接自动登录,无需重新输入账号密码登录。

流程图

单点登录.png

简单实现

  • 网站是通过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中简单实现

carbon.png

-- END

写的不错,赞助一下主机费

扫一扫,用支付宝赞赏
扫一扫,用微信赞赏
2020-09-25 17:55

文章说的很好,学习了