学习记录 - JWT实现单点登录解决方案demo

一、什么是单点登录?
单点登录是一种统一认证和授权机制,指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的系统,不需要重新登录验证。

单点登录一般用于互相授信的系统,实现单一位置登录,其他信任的应用直接免登录的方式,在多个应用系统中,只需要登录一次,就可以访问其他互相信任的应用系统。

随着时代的演进,大型web系统早已从单体应用架构发展为如今的多系统分布式应用群。但无论系统内部多么复杂,对用户而言,都是一个统一的整体,访问web系统的整个应用群要和访问单个系统一样,登录/注销只要一次就够了,不可能让一个用户在每个业务系统上都进行一次登录验证操作,这时就需要独立出一个单独的认证系统,它就是单点登录系统。

二、单点登录的优点
1.方便用户使用。用户不需要多次登录系统,不需要记住多个密码,方便用户操作。

2.提高开发效率。单点登录为开发人员提供类一个通用的验证框架。

3.简化管理。如果在应用程序中加入了单点登录的协议,管理用户账户的负担就会减轻。

三、JWT 机制
JWT(JSON Web Token)它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证JWTToken的正确性,只要正确就通过验证。

数据结构:

JWT包含三个部分:Header头部,Payload负载和Signature签名。三个部门用“.”分割。校验也是JWT内部自己实现的 ,并且可以将你存储时候的信息从token中取出来无须查库。

JWT执行流程:

JWT的请求流程也特别简单,首先使用账号登录获取Token,然后后面的各种请求,都带上这个Token即可。具体流程如下:

  1. 客户端发起登录请求,传入账号密码;

  2. 服务端使用私钥创建一个Token;

  3. 服务器返回Token给客户端;

  4. 客户端向服务端发送请求,在请求头中携带Token;

  5. 服务器验证该Token;

  6. 返回结果。
    在这里插入图片描述
    四、具体实现参考
    1、新建project项目
    2、新建sso的maven服务项目1
    3、添加jwt相关配置信息、jwt配置类、jwt验证util类
    4、新建登录测试的controll、service的login方法
    5、新建sso-project的maven服务项目2,验证token
    6、新增服务2过滤器
    7、新增服务2测试testA方法
    五、验证方式
    1、http://localhost:8080/login获取token
    2、http://localhost:8081/testA?token=xxxxx验证服务跳转
    六、参考代码
    参考以上传资源

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Security OAuth2是基于Spring Security的一个模块,用于实现OAuth2协议的认证和授权功能。JWT(JSON Web Token)是一种基于JSON的开放标准,用于在各个系统之间传递安全的信息。 要实现Spring Security OAuth2 JWT单点登录(Single Sign-On)Demo,可以按照以下步骤进行: 1. 引入依赖:在项目的pom.xml文件中,添加Spring Security OAuth2和JWT的依赖,例如: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-oauth2-client</artifactId> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency> ``` 2. 配置认证服务器:在Spring Boot的配置文件中,配置OAuth2认证服务器的相关信息,包括授权类型、客户端信息、权限等。 3. 配置资源服务器:通过@EnableResourceServer注解,配置资源服务器的相关信息,包括权限配置、接口保护等。 4. 实现用户认证:创建一个自定义的UserDetailsService实现类,用于根据用户名从数据库或其他存储中获取用户信息,并返回一个实现了UserDetails接口的对象,包括用户的用户名、密码和权限信息。 5. 实现JWT生成和解析:创建一个JwtUtil工具类,用于生成和解析JWT。在生成JWT时,可以将用户信息包含在JWT的负载中,并设置过期时间等信息。 6. 配置登录和授权端点:在Spring Security的配置类中,配置登录和授权的端点,包括登录页面、登录成功和登录失败的处理器等。 7. 创建前端页面:根据需求,创建相应的前端页面,用于展示登录界面和验证JWT。 8. 测试:启动应用程序,访问登录页面,输入用户名和密码进行登录。成功登录后,将会生成一个JWT,并返回给前端。在其他需要进行单点登录的应用中,只需使用该JWT进行认证即可。 通过以上步骤的实现,就可以实现Spring Security OAuth2 JWT单点登录Demo。在其他需要进行单点登录的应用中,只需使用同一个认证服务器,并验证JWT的合法性即可实现单点登录的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值