pringboot+mybatis+redis+cookie单点登录

一、基本思路

       单点sso用于多系统分布式,当多个系统分布式部署后,当然需要统一的登录接口。sso应运而生。

  可以想见,单点应该是提供一个服务给其他系统,当其他系统需要验证登录状态的时候,调用服务,就可以确定用户的信息权限的状态。

  1、首要要定义一个接口用于每个系统,方便接收数据。

 

  2、应该遵循流程:

          登录-》查数据库 -》用户存在 -》生成唯一token -》将用户信息和token存入redis缓存存入cookie -》将用户信息打包成接口返回值 -》返回首页,或相应页面。

                 -》用户不存在 -》提示重新登录。

 

  3、需要写的类:

      1、一个接口返回值类:  应包含status状态,msg返回消息,data可能用到的数据。

      2、cookieUtil包:    cookie的常用方法。

      3、jsonUtil包:     json常用方法。

      4、serializeUtil:    序列化对象。

      5、Controller:    起码包含  login方法,logout方法,checkName检查用户名是否可用(供ajax调用)方法,getUserByToken方法(供其他系统调用检查登录状态)。

      6、service:      对应需求的业务实现方法。

      7、Dao:      login检查用户方法,checkName检查用户名是否可用。其他方法都用mybatis generate自动生成吧,很省事。

      8、model:    自动生成。

 

  4、大概的思路是这样,实际需求比较简单,没有难点,这里我大概说一下thymeleaf模板。

    当部署到tomcat以后访问地址会发生变化,在myeclipse中是http://ip:port/的方式,部署后会成为http://ip:port/项目名的方式。

    为了部署和调试的环境一样,方便部署,要在application.properties中添加一句“server.context-path=/sso/”,

    将来打包发布后生成sso.war包部署到tomcat的webapps中,就不会有问题了。

    这样添加后,thymeleaf模板的页面访问地址要加上

/*<![CDATA[*/
                 var url = /*[[@{/user/check}]]*/"/user/check";
/*]]>*/  
<img th:src="@{/images/loginbanner.png}" />

    这样来获得地址的上下文。

 

转载于:https://www.cnblogs.com/PPBoy/p/7248597.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值