我现在有一个非常奇怪的问题。最初我认为它与领域有关,因为我最初在领域中持久化身份令牌。我最终不得不把它移到钥匙扣上。问题是这样 - 当一个新用户成功注册时,一个身份验证令牌被保存到钥匙串中,以便重新使用经过身份验证的终点。但是,对于每个注册并尝试向经过身份验证的路由发出请求的新用户,它会一直说无效的身份验证令牌。但是,当新用户终止应用程序并重新启动它时,错误消失,以前无法向经过身份验证的终结点发出请求的新用户现在可以。我已经无数次地研究了根,仍然没有头脑的方式我会感谢你的支持和解决这个问题的指示。当我在用户发出请求时从密钥链打印身份验证令牌时,令牌可用。这就是我从钥匙串中检索令牌的方法
class UserData {
static let instance = UserData()
private init() {}
func userAuthToken() -> String {
guard let authToken = KeychainWrapper.standard.string(forKey: Const.authToken) else { return ""}
return authToken
}
func userisAuthenticated() -> Bool {
guard let isEnabled = KeychainWrapper.standard.bool(forKey: Const.isEnabled) else { return false}
return isEnabled
}
func userRefreshToken() -> String {
guard let refreshToken = KeychainWrapper.standard.string(forKey: Const.refreshToken) else { return ""}
return refreshToken
}
}
这是在注册时保存到钥匙串的代码
KeychainWrapper.standard.set(true, forKey: Const.isEnabled)
KeychainWrapper.standard.set("2308r20390f", forKey: Const.authToken)
KeychainWrapper.standard.set("2729894820", forKey: Const.refreshToken)
可能是你在signup process
中调用API来存储令牌的默认值,在请求中并且在你关闭app并再次打开之前不会更改为新保存的API,因此你必须更改API Manager来处理这一点。
测试此尝试在注册过程之前使用Any api中的任何令牌