uni-app小程序后端使用shiro登录session统一

本文探讨了在SpringBoot项目中如何处理静态资源和跨域请求,通过实现WebMvcConfigurer接口,配置CORS以允许特定域名的跨域请求,并携带cookie。同时,介绍了小程序请求时如何携带sessionId以确保会话统一。对于登录验证码的session管理,通过发送请求获取sessionId,并在获取验证码时使用该sessionId来保持会话状态。
摘要由CSDN通过智能技术生成

1、session统一问题

1)spring boot项目

/**
 * 重写web mvc 配置
 * @author ZhangJi
 */
@Configuration
public class DefaultWebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        /*
         * SystemStaticParam.affixRequest 为前端URL访问路径
         * "file:" + SystemStaticParam.fileSysPath 是本地磁盘映射
         */
        registry.addResourceHandler(SystemStaticParam.affixRequestRule).addResourceLocations("file:///" + SystemStaticParam.fileSysPath);
    }

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        //跨域允许
        registry.addMapping("*")
                //允许域名
                .allowedOrigins(SystemStaticParam.webDomain)
                .allowedMethods("GET", "POST")
                .allowedHeaders("*")
                //允许携带cookie
                .allowCredentials(true)
        ;
    }

}

2) 小程序请求携带cookie与sessionId

uni.request({
                url: '请求地址·?sessionId=' + sessionId,
                header: {
                    'content-type': 'application/x-www-form-urlencoded;charset=utf-8',
                    'cookie': uni.getStorageSync("cookie")
                },
                withCredentials: true,
                xhrFields: {withCredentials: true },

2、登录验证码session统一问题

先发一次请求,获得sessionId,在获取验证码时携带返回sessionId

@GetMapping("/init-session")
@ResponseBody
public Result initSession(HttpServletRequest request, HttpServletResponse response) {

    response.setHeader("sessionId", request.getSession().getId());

    return Result.success(BaseConstant.SUCCESS_STR, request.getSession().getId());
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值