Обработка истекшего сеанса в Фениксе - PullRequest
0 голосов
/ 05 июня 2018

Я хочу знать, как предотвратить эту ошибку, которую я получаю при запросе сеанса с истекшим сроком действия.Что может быть хорошим способом сделать это?Я проверил Пользовательские ошибки , но не уверен, насколько это полезно.

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 голосов
/ 05 июня 2018

Сначала я просто проверяю значение nil.Я мог бы также использовать случай, как предложено в здесь .

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