ioS Swift新用户无法登录,直到应用程序终止并启动

问题描述 投票:0回答:1

我现在有一个非常奇怪的问题。最初我认为它与领域有关,因为我最初在领域中持久化身份令牌。我最终不得不把它移到钥匙扣上。问题是这样 - 当一个新用户成功注册时,一个身份验证令牌被保存到钥匙串中,以便重新使用经过身份验证的终点。但是,对于每个注册并尝试向经过身份验证的路由发出请求的新用户,它会一直说无效的身份验证令牌。但是,当新用户终止应用程序并重新启动它时,错误消失,以前无法向经过身份验证的终结点发出请求的新用户现在可以。我已经无数次地研究了根,仍然没有头脑的方式我会感谢你的支持和解决这个问题的指示。当我在用户发出请求时从密钥链打印身份验证令牌时,令牌可用。这就是我从钥匙串中检索令牌的方法

  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)
ios swift oop singleton keychain
1个回答
0
投票

可能是你在signup process中调用API来存储令牌的默认值,在请求中并且在你关闭app并再次打开之前不会更改为新保存的API,因此你必须更改API Manager来处理这一点。

测试此尝试在注册过程之前使用Any api中的任何令牌

© www.soinside.com 2019 - 2024. All rights reserved.