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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ioS Swift新用户无法登录,直到应用程序终止并启动相关的知识,希望对你有一定的参考价值。

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

  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中的任何令牌

以上是关于ioS Swift新用户无法登录,直到应用程序终止并启动的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 登录问题 - iOS 应用程序的新用户无法通过 FB 连接登录

解析错误代码 206:无法修改用户(解析服务器)

如何在 iPhone 的 Swift iOS 中使用 FBSDK 获取用户电子邮件地址?

无法使用 Swift 在 Xcode 中使用 Parse 1.7.2 和 Facebook SDK 4.1 创建新用户

在 iOS9 和 Swift2 中使用 Parse 登录 Facebook

iOS Swift 应用程序:如何知道当前登录的用户总数? [关闭]