Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用iOS和Rails API应用程序在iOS密钥链中存储令牌和密码可以吗?_Ios_Ruby On Rails_Authentication_Jwt - Fatal编程技术网

使用iOS和Rails API应用程序在iOS密钥链中存储令牌和密码可以吗?

使用iOS和Rails API应用程序在iOS密钥链中存储令牌和密码可以吗?,ios,ruby-on-rails,authentication,jwt,Ios,Ruby On Rails,Authentication,Jwt,我正在使用Rails后端构建一个iOS应用程序 对于身份验证,我使用了名为designe\u token\u auth的rails gem。 注册或登录后,我将访问令牌、客户端id和电子邮件存储在iOS密钥链中 但是,出于安全原因,令牌应在2周内过期,因此iOS用户应每2周重新登录一次 我想,在这种情况下,您可以使用刷新令牌,但不幸的是,我无法从designe\u token\u auth gem中找到刷新令牌 那么,在这种情况下,将用户密码存储在iOS密钥链中以便在令牌过期时自动重新登录是否

我正在使用Rails后端构建一个iOS应用程序

对于身份验证,我使用了名为designe\u token\u auth的rails gem。

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

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

我想,在这种情况下,您可以使用刷新令牌,但不幸的是,我无法从designe\u token\u auth gem中找到刷新令牌

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

如果在keychain中存储密码以避免每2周从移动应用程序登录一次不是一个好的做法,那么有没有建议使用哪个刷新令牌

我想知道我是否可以使用刷新令牌与这个jwt宝石。

存储用户凭据是一种不好的做法,应该避免。它将无法通过使令牌过期来提高应用程序的安全性

<>为了避免在使用的应用程序中间终止令牌的常见问题,可以实现滑动会话。其思想是通过用户所做的每一个经过身份验证的操作发回一个新的短期令牌。只要用户处于活动状态,他将保持身份验证

用户只有在超过有效期(本例中为2周)后才被提示再次输入其凭据,我认为这是有意义的


您也可以在knock中看到这一点,其中正在讨论滑动会话和刷新令牌。

通常我会同意@nsarno,但在这种情况下我不同意。是的,在设备上存储关键数据是一种不好的做法,如果可能,应始终避免。但是钥匙链就是为了这个目的而建立的。只有在设备解锁(通过生物认证或Pin)的情况下,应用程序(或入侵者)才能访问密码/令牌

检查
这里介绍了所有必要的功能。

谢谢,您的回答内容丰富,帮助很大!除了滑动会话之外,还有哪些其他方法?或者这是API与移动应用程序交互的最常见方法?