业务场景:项目需要把Spring+ibatis+dubbo改为SpringBoot+Mybatis+SpringCloud,并且后台要前后端分离,所以在项目改进过程中遇到:运营后台怎样控制用户有效登录时间,并作相关处理;一般我们的做法是通过拦截器拦截请求接口,再通过token从redis中获取用户的登录信息,以及登录时长,最后通过代码:
response.sendRedirect(request.getContextPath() + "/login.jsp");
实现用户跳转登录页面。但是当前后端分离,该方法就行不通了,那怎么办呢?
解决办法:
- 还记得我们用接口对接前端(前端开发)的时候,当前端调用接口时,返回resultCode(1:成功 -1:失败)给前端。
- 那这时管理后台(前后端分离),那我把管理后台的js代码看作是前端,采用对接前端的校验方法,这个问题不就解决了吗?
- 那我们后台(后台开发)对接前端(前端开发)时怎么校验用户登录情况?
代码:
首先写个拦截器
@Configuration
public class DefineAdapter extends WebMvcConfigurerAdapter {
@Autowired
public AdminLoginInterceptor adminLoginInterceptor;