android - 在移动应用程序中保持用户 session 活跃的最佳方法

标签 android ios cordova authentication hybrid-mobile-app

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

但我们不想向用户显示登录页面。最好的方法是什么。

方法一:

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

方法 2:

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

其他移动应用程序如何在用户注销之前保持 session ID 有效。

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

最佳答案

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

服务器应该发送一个额外的 RefreshToken 和你的 sessionId。 或者服务器应提供不同的 API 以使用该 refreshToken 刷新您的 sessionId。

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

  • 使用上次保存的 RefreshToken 调用 RefreshToken API。
  • 服务器应刷新该 sessionID 并将 expiryTime 重置为 3 天,并使用新的 SessionID 回复您。
  • 服务器应仅在您注销/再次登录时以及 3 天到期时在其端创建新的 RefreshToken(意味着用户 3 天未使用应用程序,因此他应该注销)。
  • 因此您应该仅在 RefreshToken 过期时注销。
  • 您将获得新的 sessionID,然后将其用于进一步的请求以及出现该错误的请求。

关于android - 在移动应用程序中保持用户 session 活跃的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41257352/

相关文章:

android - 如何在使用 MockWebServer 时使用 Dagger 2.0 支持多个端点

android - 什么更有效率?静态、数据传递、共享首选项、数据库……?

ios - 如何使用自定义 cordova 插件从 ionic1 到 native ios swift 进行通信

ios - 找不到 PushPlugin Cordova 3.5

android - 使用 Phonegap 设置图像文件名

android - 按下向上按钮时的自定义 Activity 转换

android - android中一个状态栏图标的多个通知

ios - Xcode Swift 2 变量声明(实例成员不能用于类型 View Controller )

ios - 如何选择 CollectionViewCell 中的 TableViewCell

android - jquery ajax GET请求执行两次