在分布式环境中,如何支持PC、APP(ios、android)等多端的会话共享,这也是所有公司都需要的解决方案,用传统的session方式来解决,我想已经out了,我们是否可以找一个通用的方案,比如用传统cas来实现多系统之间的sso单点登录或使用oauth的第三方登录方案? 今天给大家简单讲解一下使用spring拦截器Interceptor机制、jwt认证方式、redis分布式缓存实现sso单点登录,闲话少说,直接把步骤记录下来分享给大家:
- 引入jwt的相关jar包,在项目pom.xml中引入:
Java代码
- 拦截器配置:
Java代码
- 编写jwt的加密或者解密工具类:
Java代码
这个加密工具类是我从网上找的,如果各位要修改,可以按照自己业务修改即可。
- 创建Login.java对象,用来进行jwt的加密或者解密:
Java代码
- 定义RedisLogin对象,用来通过uid往redis进行user对象存储:
Java代码
6. 编写LoginInterceptor.java拦截器
Java代码
7. 定义异常的LoginResponseCode
Java代码
8. 编写统一sso单点登录接口:
Java代码
9. 测试sso单点登录:
返回结果集:
Java代码
到此完毕!!
我这边会将近期研发的spring cloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发spring cloud框架的朋友,大家来一起探讨spring cloud架构的搭建过程及如何运用于企业项目。
我本人邀约各大BATJ架构大牛共创Spring Cloud构建微服务架构的交流社区。 (群号:573988200)欢迎各路架构师、开发者,学习与交流使用Spring Cloud诸多强大组件的实战经验。
为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!
合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
希望此文能帮到大家的同时,也听听大家的观点。欢迎留言讨论,加关注,分享你的高见!持续更新!
To-陌霖Java架构
分享互联网最新文章 关注互联网最新发展