解决uni-app+springboot+shiro前后端分离导致sessionId不一致的问题

本文介绍了在uni-app和springboot结合的前后端分离项目中,由于跨域导致的sessionId不一致问题。通过在springboot中配置跨域处理,并在uni-app的uni.request中设置withCredentials为true,确保请求携带cookie信息,从而保持登录后sessionId的一致性。
摘要由CSDN通过智能技术生成

srpingboot增加跨域处理的配置类

因为前后端分离的项目中,每次发起的请求都是跨域,且每次请求都是全新的,所以shiro所管理的会话每次都会返回一个新的sessionId,即使在后台做了session持久化的处理,也会因为sessionId不一致,导致获取不到session里的用户信息或其他信息(这个看个人在shiro中的配置)

 

/**
 * 解决跨域请求的
 */

@Configuration
public class CorsConfig {
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        //  你需要跨域的地址  注意这里的 127.0.0.1 != localhost
        // * 表示对所有的地址都可以访问
        corsConfiguration.addAllowedOrigin("*");
        //  跨域的请求头
        corsConfiguration.addAllowedHeader("*"); // 2
        //  跨域的请求方法
        corsConfiguration.addAllowedMethod("*"); // 3
        //加上了这一句,大致意思是可以携带 cookie
        //最终的结果是可以 在跨域请求的时候获取同一个 session
        corsConfiguration.setAllowCredentials(true);
        return corsConfiguration;
    }
    @Bean
    public CorsFilter 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值