在移动应用中保持用户会话活跃的最佳方法

时间:2016-12-21 07:30:27

标签: android ios cordova login hybrid-mobile-app

我们开发了一个移动应用程序(Android和iOS),它具有有限会话到期时间(3天)的自定义登录。会话将在3天后过期,我们将显示登录页面以重新登录。

但我们不想向用户显示登录页面。这样做的最佳方法是什么?

方法1:

在服务器端,不要为生成的会话设置到期日期。因此,在用户退出之前,该会话不会过期。

方法2:

在用户界面中,保存用户名&永久存储中的密码,如sqlite&当会话过期时(在我的情况下3天后),UI必须发送隐藏登录调用以获取新的会话ID。在这种情况下,我们不会重定向到登录页面。

在用户退出之前,其他移动应用如何使会话ID保持活跃状态​​。

除了以上两种方法之外,请建议我任何其他最佳方法。

1 个答案:

答案 0 :(得分:2)

您可以使用以下方法解决您的问题,我遇到了同样的问题并使用了相同的方法:

服务器应该使用您的sessionId发送额外的RefreshToken。 服务器应该有一个不同的API来刷新你的sessionId和那个refreshToken。

因此,假设您收到“无效令牌”错误,那么您需要按照以下步骤操作:

  • 使用已保存的RefreshToken调用RefreshToken API。
  • 服务器应该刷新sessionID&将到期时间重置为3天并回复您。
  • 只有当您再次登录/登录时,服务器才应在其末尾创建新的RefreshToken。当3天到期时(意味着用户未使用应用程序3天,因此他应该退出)。
  • 因此,只有当RefreshToken过期时才应该注销。
  • 您将获得新的sessionID,然后将其用于进一步的请求&对于那个你有错误的请求。