使用Timex设置验证链接的超时

时间:2018-03-23 10:34:26

标签: elixir phoenix-framework ecto timex

我将数据保存到我的数据库后通过电子邮件发送验证链接。我希望链接有一个超时,即它会在一段时间后呈现无效。我如何使用Timex这样做?我不想使用像Coherence这样的其他身份验证包。

1 个答案:

答案 0 :(得分:1)

您可能根本不需要Timex,现在假设您的数据库使用的是天真的时区,您可以使用

# Assuming the link will expire in an hour (3600 seconds)
valid_till = NaiveDateTime.add(NaiveDateTime.utc_now(), 3600)

# Sends the verification mail
...

# Save the valid_till somewhere in the database and when user tries to use the link to verify themselves compare the current timestamp against the stored valid_till
if NaiveDateTime.utc_now > stored_valid_till, do: false