7

有没有办法在 Shiro 中实现多因素身份验证?有人可以给我一个关于如何实现这个的提示吗?

有关更多详细信息:基本思想是,用户需要像往常一样使用用户名和密码登录,但在实际进行身份验证之前,用户还需要输入他收到的一次性令牌作为 SMS。

谢谢!

4

1 回答 1

6

我终于自己解决了我的问题,但我当然总是愿意接受其他建议。

我实现了自己的 2 - 因素身份验证流程:

首先,我更改了登录页面的 URL,Shiro 将未经身份验证的用户重定向到我自己的登录页面,这导致了身份验证机制。用户需要完成两个“阶段”才能登录。

  • 在第一阶段,他/她必须提供用户名和密码,如果这些都是有效的,用户将被重定向到登录的第二阶段。
  • 同时,已生成一次性令牌并通过 SMS 发送给用户。用户的身份验证进度也已保存在会话中(这意味着我记得,第 1 阶段已成功完成)。
  • 在第 2 阶段,用户需要输入令牌。如果令牌是
    • 无效或超过尝试次数 (5)
    • 过期(5 分钟后)尝试正确输入令牌的次数超过 4 次,用户将被重定向到第 1 阶段,所有进度将被删除。一世
  • 如果一切顺利,用户将通过 Shiro 的身份验证(当然不会让他/她知道)

最后,用户将被重定向到他/她最初请求的页面,这仍然允许他/她为页面添加书签。当然,Shiro 的记住我将永远被禁用。

于 2013-09-04T07:09:42.650 回答