Ответ
Access Token — это кратковременный учетный токен (обычно в формате JWT), который клиентское приложение использует для доступа к защищённым ресурсам API от имени пользователя после успешной аутентификации.
Роль в потоке OAuth 2.0:
- Пользователь логинится (например, вводит пароль или через социальную сеть).
- Сервер аутентификации возвращает Access Token (и часто Refresh Token).
- Клиент включает Access Token в каждый последующий запрос к API.
Как используется в запросе:
Токен передаётся в заголовке Authorization по схеме Bearer.
let url = URL(string: "https://api.example.com/me")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
// Добавление токена в заголовок
request.setValue("Bearer (accessToken)", forHTTPHeaderField: "Authorization")
let task = URLSession.shared.dataTask(with: request) { data, response, error in
// Обработка ответа API
}
task.resume()
Ключевые характеристики:
- Короткий срок жизни: От нескольких минут до нескольких часов. Это ограничивает ущерб в случае утечки.
- Не содержит чувствительных данных: Обычно это подписанная строка, содержащая идентификатор пользователя (subject) и права доступа (scopes).
- Отзыв: Сервер может аннулировать токен до истечения срока его действия.
- Безопасное хранение: Токены должны храниться в защищённом хранилище, таком как Keychain Services. Никогда не храните их в
UserDefaultsили в plain-text файлах.
Для продления сессии без повторного ввода пароля используется Refresh Token, который обменивается на новый Access Token.