在凤凰城处理过期的会话

时间:2018-06-05 07:41:07

标签: session phoenix-framework

我想知道如何防止这个请求过期会话的错误。有什么好办法呢?我查看了Custom Errors,但不确定它有多大帮助。

enter image description here

  • 首先,在会话中创建并设置UUID。

    uuid = SecureRandom.uuid
    SessionStore.set uuid, id, ttl: 20
    
  • 然后,下面的URL链接被发送给用户,当用户点击时,它应该检查UUID是否在会话中过期。

    <% verify_url = MyAppWeb.Router.Helpers.email_url(MyAppWeb.Endpoint, :verify, uuid: @uuid) %>
    
  • 检查UUID

    def verify(conn, %{"uuid" => uuid}) do
        user_id = SessionStore.get(uuid)
    end
    

1 个答案:

答案 0 :(得分:0)

我先检查一下nil值。我还可以使用here中建议的案例。

if SessionStore.get(uuid) == nil do
  IO.puts "uuid expired"
else
  user_id = SessionStore.get(uuid)
  user = Accounts.get_user!(user_id)
end