hsweb 用户手册
  • 说明
  • 快速开始
  • 增删改查
    • 通用CRUD
    • 动态SQL条件
    • 数据库版本控制
    • 拓展实体类
  • 权限控制
    • 登录授权
    • 权限管理
    • RBAC权限控制
    • 数据权限控制
    • 双因子验证
    • 前后分离
  • 常用工具
    • 枚举数据字典
    • 对象属性拷贝
    • 缓存
    • 分布式锁
    • 计数器
    • Excel导入导出
  • 日志
  • 多数据源
    • 多数据源管理
    • Mybatis 多数据源
    • Jta 多数据源事务
  • 业务功能
    • 用户权限
    • 组织架构
    • 数据字典
    • 动态表单
    • 工作流
    • 数据源配置
    • 模板管理
    • 动态脚本
    • 首页dashbord配置
    • 文件上传下载
    • 在线数据库管理
  • 其他
Powered by GitBook
On this page
  • 开启双因子验证
  • TOTP
  • 验证流程
  • 自定义验证策略

Was this helpful?

  1. 权限控制

双因子验证

Previous数据权限控制Next前后分离

Last updated 6 years ago

Was this helpful?

hsweb提供了双因子验证功能,默认提供了totp实现,可通过totp app(比如:)进行验证码获取。可以通过拓展实现接口短信验证等功能。

开启双因子验证

配置 application.yml

hsweb:
    authorize:
        two-factor:
            enable: true
        totp:
          enable: true # 开启totp支持
          domain: hsweb.me

在需要验证的接口上注解:

@PostMapping
@TwoFactor("update-password") //调用此接口时,需要进行双因子验证
public ResponseMessage<Boolean> updatePassword(String password){
    //业务逻辑
}

TOTP

如果开启了TOTP 双因子验证,在创建用户时会生成用户的totp验证密钥,并发出事件:TotpTwoFactorCreatedEvent ,通过监听此事件进行自定义处理:比如发送邮件通知等。

验证流程

  1. 调用接口,判断当前是否已经验证通过

  2. 如果没有验证通过,返回{"status":403,"code":"need_tow_factor","message":"需要进行双因子验证","provider":"totp"}

  3. 客户端根据返回码,引导用户输入验证码

  4. 将验证码添加到第一步的接口参数中,默认参数名为: verifyCode

  5. 验证通过后,在@TwoFactor(timeout=600000L)毫秒内再次调用无需重复输入,默认为10分钟.

自定义验证策略

hsweb默认只提供了TOTP方式的验证实现,,但是提供了拓展方式可以自定义验证策略,比如:短信验证

  1. 继承抽象类: DefaultTwoFactorValidatorProvider并重写对应方法

  2. 修改配置: hsweb.authorize.two-factor.default-provider=自定义的provider,或者在注解中指定provider: @TwoFactor(value="验证接口标识",provider="自定义的provider")

Google Authenticator