gpt4 book ai didi

ios - 存储用于离线身份验证的 token

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:08:08 24 4
gpt4 key购买 nike

我正在开发一个需要用户登录才能使用的应用程序。用户应该只能在连接到 Internet 时才能登录。当用户登录时, token 应存储在设备上,允许离线使用应用程序而无需再次登录。我基本上想检查此 token 是否存在,如果存在则将用户带到应用程序,否则将用户带到登录屏幕。此外,此 token 应在一段时间后过期。

问题是是否有一种方法可以存储 token ,该 token 将在比方说 24 小时后过期,而用户无法篡改它或以任何方式欺骗系统(例如,如果 token 带有时间戳并且用户更改了设备时间)。 token 应该在用户未连接到 Internet 的情况下过期,这样用户将无法永远使用该应用程序,除非每隔一段时间重新进行身份验证。

虽然这个问题看起来很简单,但我一直没能找到答案。我研究过 OAuth 和 NSHTTPCookie 等技术,但这些技术似乎与在线身份验证有关,而我试图在离线设置中对用户进行身份验证。

最佳答案

您可以使用钥匙串(keychain),这将是最安全的选择。

你可以使用“SwiftKeychainWrapper”

当用户进行身份验证时 >> 将 token 保存到钥匙串(keychain)和时间戳。

let success: Bool = KeychainWrapper.standard.set("TOKEN", forKey: "authKey")
let success: Bool = KeychainWrapper.standard.set("TIMETAMP", forKey: "timeKey")

对于离线认证用户 key 和时间戳组合来检查是否给用户访问...

let authToken: String? = KeychainWrapper.standard.string(forKey: "authKey")
let timeToken: String? = KeychainWrapper.standard.string(forKey: "timeKey")

时间到了后,只需从钥匙串(keychain)中删除...

关于ios - 存储用于离线身份验证的 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46114017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com