Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 活动型号OTP在睡眠30秒后不生成新密钥_Ruby On Rails_Twilio - Fatal编程技术网

Ruby on rails 活动型号OTP在睡眠30秒后不生成新密钥

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

我正在尝试在一个示例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", 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