双因子验证
hsweb提供了双因子验证功能,默认提供了totp实现,可通过totp app(比如:Google Authenticator)进行验证码获取。可以通过拓展实现接口短信验证等功能。
开启双因子验证
配置 application.yml
在需要验证的接口上注解:
TOTP
如果开启了TOTP 双因子验证,在创建用户时会生成用户的totp验证密钥,并发出事件:TotpTwoFactorCreatedEvent
,通过监听此事件进行自定义处理:比如发送邮件通知等。
验证流程
调用接口,判断当前是否已经验证通过
如果没有验证通过,返回{"status":403,"code":"need_tow_factor","message":"需要进行双因子验证","provider":"totp"}
客户端根据返回码,引导用户输入验证码
将验证码添加到第一步的接口参数中,默认参数名为:
verifyCode
验证通过后,在
@TwoFactor(timeout=600000L)
毫秒内再次调用无需重复输入,默认为10分钟
.
自定义验证策略
hsweb默认只提供了TOTP方式的验证实现,,但是提供了拓展方式可以自定义验证策略,比如:短信验证
继承抽象类:
DefaultTwoFactorValidatorProvider
并重写对应方法修改配置:
hsweb.authorize.two-factor.default-provider=自定义的provider
,或者在注解中指定provider:@TwoFactor(value="验证接口标识",provider="自定义的provider")
Last updated