跳转到主内容
极星编程网:以代码为星,赴技术山海!

Sa-Token跨域问题解决后,token失效、Cookie丢失怎么办?

大家好,我是苏承栈。最近在使用Sa-Token做业务时,遇到了一个头疼的问题:跨域问题解决后,认证中心的token失效了,Cookie也跟着丢失了。今天就来跟大家聊聊这个坑,以及我是怎么解决的。

问题分析

这个问题其实是因为跨域问题导致的。当跨域请求解决后,HttpServletRequest变成了新的对象,导致Cookie被清空了,或者Cookie本身没有携带过来。这就是Sa-Token的一个大坑。

解决方案

为了避免这个问题,我采取了以下两种方法:

  • 在登录成功后,如果需要在客户端请求其他路径,可以在该路径上携带token。然后到认证中心时,利用StpUtil工具类将token设置到认证中心的request中。
  • 如果认证中心重定向回来,token也可能丢失。所以我们将token放在重定向地址里作为参数,就不会丢失了。

代码示例

下面是客户端的拦截器代码示例:

@Configuration
public class SaTokenConfigure implements WebMvcConfigurer {

    /** 注册 [Sa-Token全局过滤器] */
    @Bean
    public SaServletFilter getSaServletFilter() {
        return new SaServletFilter()
                .addInclude(
                            

相关文章