ioS Swift Новые пользователи не могут войти, пока приложение не будет закрыто и запущено - PullRequest
0 голосов
/ 08 мая 2018

У меня сейчас очень странная проблема. Первоначально я думал, что это связано с областью, потому что я изначально сохранял токен аутентификации в области. В конце концов мне пришлось переместить брелок. Проблема заключается в следующем: при успешной регистрации нового пользователя токен авторизации сохраняется в цепочке для ключей для повторного использования, чтобы достичь конечной точки, прошедшей проверку подлинности. Однако для каждого нового пользователя, который регистрируется и пытается сделать запрос к аутентифицированному маршруту, он постоянно сообщает неверный токен авторизации. Но в тот момент, когда новый пользователь завершает работу приложения и перезапускает его, ошибка исчезает, и новый пользователь, который ранее не мог сделать запрос к аутентифицированной конечной точке, теперь сможет это сделать. Я исследовал корень бесчисленное количество раз, но до сих пор не могу понять, как я буду признателен за вашу поддержку и советы по решению этой проблемы. когда я печатаю токен аутентификации из цепочки ключей в тот момент, когда пользователь делает запрос, токен становится доступным. вот как я получаю токен из цепочки для ключей

  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)

1 Ответ

0 голосов
/ 08 мая 2018

Может быть, вы вызываете API в signup process, который хранит значение токена по умолчанию, в запросе и не меняет его на новый сохраненный, пока вы не закроете приложение и не откроете снова, поэтому вам нужно изменить API Manager, чтобы справиться с этим вопросом.

, чтобы проверить это, попробуйте использовать любой токен в любом API до процесса регистрации.

...