• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:38:36 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

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

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



Best Answer-推荐答案


您可以使用钥匙串(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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap