我正在研究一个需要用户登录才能使用它的应用程序。用户只能连接到互联网时才能登录。用户登录时,应在设备上存储令牌,允许在不登录的情况下脱机使用应用程序。我基本上想检查这个令牌是否存在,如果是,则将用户带到应用程序中,否则就是登录屏幕。此外,此令牌应在一段时间后过期。存储用于脱机身份验证的令牌
问题是,如果有一种方法可以存储令牌,例如24小时后,用户无法以任何方式篡改或诱骗系统(例如令牌为时间戳和用户更改设备时间)。令牌应在用户未连接到互联网的情况下过期,以便用户无法永久使用该应用程序,而无需每隔一段时间重新进行一次认证。
虽然看起来很简单,但我一直无法找到这个问题的答案。我研究过OAuth和NSHTTPCookie等技术,但这些看起来与在线身份验证有关,而我试图在脱机环境中对用户进行身份验证。
可行的,但有一些题。您是否要使用存储的令牌在连接到网络时在服务器上发送?您可以使用钥匙串保存凭证并将上次登录时间保存在Userdeafult(适合您)。在下次登录之前,将上次登录时间与24小时进行比较。如果小于yes,则允许访问其他Keychain的删除凭证。 –
谢谢你的回复。不,在令牌过期之前,我不会再与服务器进行身份验证。令牌由服务器签名,用于在24小时内对用户进行认证和授权。即使用户有互联网访问权限,如果存在有效的令牌,我也不想连接到服务器。 –
非常适合钥匙扣。最佳&安全。 –