注册登录鉴权

本文介绍了用户注册与登录鉴权过程,包括密码加密、短信验证码管理和登录校验。深入探讨了JWT的3W1H,阐述其在微服务中实现无状态登录的应用,并解释了RSA加密算法的原理及使用场景,强调了非对称加密在信息安全中的作用。
摘要由CSDN通过智能技术生成

用户注册

	前台需要给我们传递用户名、密码、手机号、手机验证码。验证用户前台传过来的数据是否符合规范,我们使用的Hibernate Validator框架实现的服务端表单校验。短信验证码这块,我们采用的阿里的大于短信接口来做的,我们单独搭建了一个短信微服务,发送的短信请求通过MQ消息由短信微服务消费,进行短信发送。密码我们使用的是Spring提供的BCryptPasswordEncoder加密算法,分成加密和验证两个过程:

加密:算法会对明文密码使用UUID随机生成一个salt,使用salt结合密码来加密,得到最终的密文。

验证密码:需要先拿到加密后的密码和要验证的密码,根据已加密的密码来推测出salt,然后利用相同的算法和salt对要验证码的密码加密,与已加密的密码对比即可。

短信验证码的有效期为30分钟,为了验证短信验证码的时效性,我们保存到了redis中,手机号作为key,验证码作为value,设置有效期为30分钟。另外为了防止恶意攻击,我们限制一个手机号1分钟之内只能发送一次验证码,这个也是通过redis来实现的,手机号拼接"_yes"为key,验证码为value,设置有效期为1分钟。为了防止机器恶意调用验证码接口,我们这个地方使用图形验证码来进行限制

在这里插入图片描述

用户登录

	使用JWT+RSA加密技术实现了无状态登录。我们单独搭建了一个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值