基于JWT和Oauth2 实现 SSO(单点登录)

版权声明:个人原创 https://blog.csdn.net/qq_42459181/article/details/89840805

一、导学

1. JWT 的特点:

  自包含: 在JWT里面可以包含很多信息,可从服务器解析,而不仅仅是一串没有意义的字符串。
  密签: 安全签名,防止别人篡改。
  可扩展: 因为JWT可以包含有用的信息,所以其具有不俗的扩展性。

二、原理

如图:
在这里插入图片描述

三、实现

1. 流程:

  访问应用A服务,会跳到认证服务器的登录页面,输入用户名和密码登录后,再访问应用B服务时不需要再登录了。

注1 : 怎么确定应用A和应用B是同一个用户呢? 答:根据同一个浏览器的sessionId相同,也就是应用A和应用B都用一个浏览器时,sessionId相同。
注2 :应用A和应用B可以拿到同一个用户的信息,但是拿到的JWT不同。

2. 代码结构:

在这里插入图片描述
说明 :
      sso-client1 : 应用1
      sso-client2 : 应用2
      sso-parent : 顶层父工程(pom格式)
      sso-server : 认证服务器

3. 源码地址:

因为涉及代码并不复杂,代码可见笔者的git仓库,在此博客中不再赘述 ↓

https://gitee.com/wxj1994/oauth2-sso

猜你喜欢

转载自blog.csdn.net/qq_42459181/article/details/89840805