Spring Security实现短信验证码登录

Spring Security默认的一个实现是使用用户名密码登录,当初我们在开始做项目时,也是先使用这种登录方式,并没有多考虑其他的登录方式。而后面需求越来越多,我们需要支持短信验证码登录了,这时候再看了解Spring Security中如何实现短信验证码登录。

这里有一篇文章:SpringBoot 集成 Spring Security(8)——短信验证码登录,提供了一种比较正规的方法来解决这个问题,比如需要写filter类等等。但是我们需要临时性解决这个问题,于是就通过了其它非常规手段来实现。

我们知道默认的方式是,数据库里的user表保存了username和password,其中后者是密文保存。当用户登录时,Spring Security会拿用户传过来的密码进行加密后和数据库中password的值进行比较,相同则登录成功。如果是短信登录,需要传入的是手机号和验证码,比如叫phone和verification_code。

在我们的数据库中,username和phone都是唯一的,那我们想达到的效果就是,让对phone和 verification_code的校验转变成对username和password的校验就好了。这样一来,实现的逻辑如下:

在user表中添加一个字段verification_code,等用户获取手机验证码时,后端将返回给用户的验证码进行加密,加密方式和对password的处理一样,然后保存到 verification_code 字段中。然后用户在输入手机号和验证码登录时,我们根据手机号获取用户的username,然后将username和验证码传给获取

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

技术人成长

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值