"keep logged in" 如何在本机应用程序中得到保护?

How is "keep logged in" secured in native applications?

我一直想知道 Dropbox 客户端等本机应用程序或任何其他具有服务器端服务的本机应用程序如何安全地实现“保持登录”功能。

是否有安全存储凭据/访问令牌的最佳实践或行业标准?

本机应用程序可以在登录后使用内置的安全存储来存储 OAuth 令牌:

  • 令牌使用应用程序和用户私有的密钥加密
  • 它们存储在操作系统安全存储中,例如 Windows Credential Manager / MacOS 或 iOS Key Chain
  • 刷新令牌可以有很长的有效期,但不是无限的
  • 标准库通常做较低级别的加密工作

当然,主要的好处是用户不需要在每次重新启动应用程序时都登录。例如:

相同的原则适用于移动设备: