是否可以使用 iOS 和 Rails API 应用程序在 iOS 钥匙串中存储令牌和密码?

Non*_*oto 3 authentication ruby-on-rails ios jwt

我正在构建一个带有 Rails 后端的 iOS 应用程序。

对于身份验证,我使用名为 devise_token_auth 的 rails gem。 https://github.com/lynndylanhurley/devise_token_auth

注册或登录后,我将访问令牌、客户端 ID 和电子邮件存储在 iOS 钥匙串中。

但是,出于安全考虑,令牌应在 2 周后过期,因此 iOS 用户应每 2 周重新登录一次。

我想,在这种情况下您可以使用 refresh-token,但不幸的是我无法从 devise_token_auth gem 中找到 refresh-token。

那么,在这种情况下,是否可以将用户密码存储在 iOS 钥匙串中以在令牌过期时自动重新登录,或者将密码存储在钥匙串中是应该避免的坏主意?

如果将密码存储在钥匙串中以避免从移动应用程序每两周登录一次不是一个好习惯,是否有任何建议可以使用刷新令牌?

我想知道我是否可以将刷新令牌与这个 jwt gem 一起使用。 https://github.com/nsarno/knock

小智 5

通常我会同意@nsarno,但在这种情况下我不同意。是的,在设备上存储关键数据是不好的做法,应尽可能避免。但是钥匙串就是为此目的而构建的。如果设备已解锁(通过生物识别身份验证或 Pin),则密码/令牌只能由您的应用程序(或入侵者)访问。

检查https://developer.apple.com/documentation/security/keychain_services 那里解释了所有必要的功能。