Ruby on rails 活动型号OTP在睡眠30秒后不生成新密钥
我正在尝试在一个示例rails应用程序上实现active_model_otp。 我的用户模型有名称和电子邮件列。遵循文档中的必要步骤后,我首先在rails控制台上创建了一个用户,如下所示: User.createname:Abc,电子邮件:example@email.com 这创建了一个记录,如下所示:Ruby on rails 活动型号OTP在睡眠30秒后不生成新密钥,ruby-on-rails,twilio,Ruby On Rails,Twilio,我正在尝试在一个示例rails应用程序上实现active_model_otp。 我的用户模型有名称和电子邮件列。遵循文档中的必要步骤后,我首先在rails控制台上创建了一个用户,如下所示: User.createname:Abc,电子邮件:example@email.com 这创建了一个记录,如下所示: <User id: 1, name: "Abc", email: "example@email.com", created_at: "2017-04-28 07:12:25", updat
<User id: 1, name: "Abc", email: "example@email.com", created_at: "2017-04-28 07:12:25", updated_at: "2017-04-28 07:12:25", otp_secret_key: "lol6rrtqppy46xfs">
然后我跑了
睡眠2
根据给定的文档,它应该在2秒钟后生成一个新的otp。但当我在控制台中再次给出:user.otp_secret_密钥时,2秒后它返回的是相同的旧otp
=>lol6rrtqppy46xfs
我错过了什么?这里是Twilio开发者福音传道者 otp_secret_密钥是用于生成发送给用户的实际otp代码的字符串。这是通过二维码向用户共享的秘密,因此需要在用户的auth应用程序和服务器上进行匹配 生成的OTP应每30秒更改一次。据我所知,它使用默认的时间间隔 获取OTP的方法是OTP_代码。因此,要检查它是否工作,请尝试:
user = User.last
puts user.otp_code
sleep(30)
puts user.otp_code
让我知道这是否有帮助。在第二次查询otp之前,您是否尝试重新加载用户的资源?您可以使用user.reloadTested user.reload来执行此操作。仍然是相同的otpOf课程,它的otp_代码。该死我一直在传递otp_secret_密钥,查看activerecord列。谢谢你指给我看。一个人的问题多久会被@philnash回答一次
user = User.last
puts user.otp_code
sleep(30)
puts user.otp_code