Shiro+SpringBoot做微信小程序登录的坑

学海无涯,旅“途”漫漫,“途”中小记,如有错误,敬请指出,在此拜谢!

一、前情提要

最近在研究Shiro,和朋友讨论的时候,听说在做微信小程序的时候,Shiro登录验证不好使。便自己验证了一下,确实不好用。去百度查询了半天,并没有找出解决方案,不得不吐槽百度,两三页的搜索内容都是一个模子出来的。研究了好几天才研究出来。

二、分析

查了下源码,结合一些大牛的分析。Shiro的登陆验证方式是,登陆的时候,后台会自动的向浏览器的Cookies里面放置一些参数。示例如下。
在这里插入图片描述
而对于微信小程序,正常使用的时候,不像浏览器一样,是使用Cookies的。所以小程序无法将Cookies再返回给后台,导致后台获取不到参数,认为未登录。所以在微信小程序中获取到这些Cookies,再从header中传过去即可。此处注意,登录所需要的参数为"JSESSIONID"。如果你还需要其他参数,那也一并发过去即可(比如我的Shiro增加了记住我的功能,还需要传rememberMe。当然你可以最暴力的方式,把所有Coolies全传过去)。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Shiro是一个强大的Java安全框架,可以帮助开发者轻松地实现身份认证、授权管理和会话管理等安全功能。而Spring Boot是一个用于简化Spring应用开发的框架,它提供了一些开箱即用的特性,使得开发者可以快速搭建一个基于Spring的应用。 将ShiroSpring Boot结合使用,可以让我们更方便地使用Shiro的各种安全特性。Shiro提供了一些与Spring集成的组件,例如我们可以通过使用Shiro的注解来实现权限控制,同时也可以利用Spring的依赖注入特性来处理Shiro的一些配置。 在Spring Boot中使用Shiro主要有以下步骤:首先,我们需要在Spring Boot的配置文件中配置Shiro的相关信息,例如Realm(用于认证和授权的数据源)、filter(用于拦截和处理请求)等。接着,我们需要创建一个自定义的Realm来实现具体的认证和授权逻辑。然后,我们可以使用Shiro提供的注解在Controller层进行权限控制,例如@RequiresAuthentication用于要求用户进行身份认证,@RequiresRoles用于要求用户具有某个角色等等。最后,在前端页面或者API中,我们可以通过Shiro提供的标签或者API来展示或者处理与用户权限相关的信息。 总结起来,ShiroSpring Boot的结合为我们提供了一种便捷的方式来实现应用的安全功能。我们可以通过Shiro来管理用户的身份认证和权限控制,通过Spring Boot来简化应用的开发过程。这样,我们可以更加专注于业务逻辑的实现,同时也提高了应用的安全性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Doubletree_lin

老板,爱你,么么哒

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值