gpt4 book ai didi

ruby-on-rails - 使用 Devise 实现双因素身份验证

转载 作者:行者123 更新时间:2023-12-05 07:27:49 31 4
gpt4 key购买 nike

我正在尝试在 Devise 上实现双重身份验证使用 gem devise-two-factor .我希望身份验证分两步进行,首先我要询问用户名和密码。如果用户通过此步骤,则如果 2FA 已激活,他将被重定向到 OTP 的下一页,否则 session 将由 Devise 验证。

如果用户选择了 2FA,那么我想使用 Devise 进行所有身份验证,并且不想使用 sign_in(user) 函数创建用户 session 。 validate_and_consume_otp(CURRENT_OTP) 为真。我想将用户名密码和 OTP 作为参数传递给 Devise,这样 Devise 将在没有我干预的情况下处理所有三个参数的身份验证。

为此,我想出了一些工作流程:-

  1. 如果用户名和密码有效且正确,我会将它们作为 Post 参数传递,并将用户名和密码作为隐藏字段以及用户在提交后填写的 OTP,这三个参数将发送给 Devise验证。

  2. 我首先验证用户名以及它是否存在于用户表中,如果存在,我将使用设计的默认函数 user.valid_password?("YOUR_PASSWORD_COMES_HERE") 检查有效密码,前提是这两个条件都满足true 我将把用户的电子邮件作为 session 变量传递到下一步,在第二步中我只验证正确的 OTP(因为用户名和密码验证在步骤 1 中完成)如果 OTP 正确我们为用户创建 session 电子邮件作为 session 变量传递并在成功登录后删除 session ,否则我们将再次要求提供 OTP。

你能建议任何更好的工作流程吗?

最佳答案

如果你想要分两步完成 2FA,你可以尝试使用 gem https://github.com/Houdini/two_factor_authentication .

这个 gem 的默认工作流程是这样的:

  1. 输入用户名和密码
  2. 如果用户名和密码正确,通知 otp 给用户
  3. 插入密码
  4. 如果otp正确,则登录正确

关于ruby-on-rails - 使用 Devise 实现双因素身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53814361/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com