Как хранить токены в iOS? - PullRequest
1 голос
/ 09 июля 2020

Я делаю небольшой проект по подготовке к связыванию сервера, но пытаюсь сохранить токен в Userdefault! Я не знаю, как кодировать.

var headers: [String: String]? {
    switch self {
    case .signIn:
        return nil
        
    case .renewalToken:
        guard let token = UserDefaults.standard.set("userID", forKey: "signIn") else{
        return ["Authorization": "Bearer " + token]
        }
    default:
        guard let token = UserDefaults.standard.set(<#T##value: Any?##Any?#>, forKey: <#T##String#>)
        return ["Authorization": "Bearer " + token]
    }
}

Этот код можно получить, поместив его в приведенный ниже код с помощью заголовка, но я не знаю, что делать с токеном

   func get(_ api: TargetType) -> DataRequest{
    return AF.request(baseURI + api.path, method: .get, parameters: api.parameters, encoding: JSONEncoding.prettyPrinted, headers: api.headers, interceptor: nil)
}

1 Ответ

1 голос
/ 09 июля 2020

Прежде всего, вы не должны сохранять конфиденциальную информацию в пользовательских настройках по умолчанию. Я бы порекомендовал вам использовать брелок. Это очень безопасно.

Есть несколько библиотек, которые предоставляют простые и удобные интерфейсы связки ключей

SwiftyKeychainWrapper - одна из них:

https://github.com/jrendel/SwiftKeychainWrapper

Обновление -

Вам необходимо получить доступ к пользовательским значениям по умолчанию, используя следующий код:

let token = UserDefaults.standard.string(forKey: “keyName”) ?? “”

Примечание: если токен не существует, то вы можете просто переместить пользователя на экран входа в систему для аутентификации и регенерации токена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...