用户正在移动设备上注销

时间:2017-11-22 18:26:27

标签: phoenix-framework

用户意外地被注销,有时一天多次注销。

最初,我使用put_session存储用户。我最近切换到使用Guardian进行身份验证,但我遇到了同样的问题(调用current_resource将返回nil而不是用户)。

有两点需要注意:

  1. 我在桌面/笔记本电脑浏览器上没有遇到过这个问题。
  2. 这个问题似乎是在一段时间不活动后发生的,但我无法肯定地说,因为我无法弄清楚如何始终如一地重现这个问题。
  3. 这已经存在了大约6个月的问题,所以我真的希望能在头脑风暴方面得到一些帮助。

    设定:

    • raspbian(jessie)通过家庭网络连接
    • Elixir 1.5 / Phoenix 1.3

1 个答案:

答案 0 :(得分:0)

这可能是由许多事情引起的。首先想到的是移动操作系统试图节省内存/电池并破坏会话(以及可能的相关数据)。

您可以尝试使用令牌为移动设备设置不同的身份验证策略。然后将令牌存储在localstorage中,即使重新启动移动浏览器,它也应该保留。

通常在处理本机应用程序时使用令牌,因此用户不必每次都登录。这也适用于基本的网络应用程序。

但是要小心,令牌有其局限性和缺点,难以撤销它们,并且刷新它们并不简单。不要在令牌中存储任何敏感信息,因为它基本上是公共数据。

如果这是一个没有任何敏感数据的简单应用程序,您可以让令牌永久有效,并且永远不必再次登录(直到令牌从localstorage中删除)或将TTL设置为24小时。