我是用shiro做安全框架,可是现在有个需求是用手机验证码进行登录,

我是用shiro做安全框架,可是现在有个需求是用手机验证码进行登录,,第1张

1、首先你得有个发送短信验证码的接口

2、你得在界面上获取用户手机号,将验证码发下去

3、你得自己实现shiro的登录验证方面,验证用户手机号和下发的短信验证码内容

4、再生成shiro里面的会话信息

直接用手机号登录即可,密码就不用了。

推荐一套完整的Shiro Demo,免费的。

Shiro介绍文档:http://www.sojson.com/shiro

Demo已经部署到线上,地址是http://shiro.itboy.net,

管理员帐号:admin,密码:sojson.com 如果密码错误,请用sojson。

PS:你可以注册自己的帐号,然后用管理员赋权限给你自己的帐号,但是,每20分钟会把数据初始化一次。建议自己下载源码,让Demo跑起来,然后跑的更快。

最终demo

到这节为止,我们已经实现了身份验证和权限验证。但是,如果我们登录之后多次访问 http://localhost:8080/userInfo/userDel 的话,会发现权限验证会每次都执行一次。这是有问题的,因为像用户的权限这些我们提供给shiro一次就够了。

下面,我们开始给shiro添加缓存支持:

在 com.example.demo.config.Shiro.ShiroConfiguration 中添加以下方法。

将缓存对象注入到 SecurityManager 中:

在src/main/resouces/config中添加ehcache-shiro.xml配置文件:

启动项目,再多次访问 http://localhost:8080/userInfo/userDel ,这时候只会在后台打印一次配置权限的信息了,说明shiro缓存起了作用。

---------------------下面我们开始配置记住密码-----------

将rememberMeManager注入到SecurityManager中

在 ShiroFilterFactoryBean 中添加记住我过滤器 user ,添加 user 过滤器的资源在记住我或认证之后就可以直接访问了。

最后,在login.html页面添加记住我单选框

启动项目,正常登录后关闭浏览器,再打开浏览器输入 http://localhost:8080/index ,这时候就可以直接访问index页面,不需要再登录了。

SpringBoot + Shiro (一)基础工程搭建

SpringBoot + Shiro (二)身份校验和角色设置

SpringBoot + Shiro (三)权限

SpringBoot + Shiro (四)缓存&记住密码

SpringBoot + Shiro (五)验证码

最后,感谢几位作者的文章解惑:

springboot整合shiro-登录认证和权限管理

Spring Boot Shiro权限管理【从零开始学Spring Boot】

Spring boot 中使用Shiro

最后帮朋友打个小广告

一个有趣的迷你小程序


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11643050.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存