token_type
- это параметр в Access Token, который генерирует вызов к серверу авторизации, который по сути представляет, как access_token будет сгенерирован и представлен для вызовов доступа к ресурсам. Вы указываете token_type в вызове генерации токена доступа к серверу авторизации.
Если вы выберете Bearer
(по умолчанию в большинстве реализаций), access_token
создается и отправляется вам. Под предъявителем можно просто понимать «предоставить доступ к предъявителю этого токена». Один действительный токен и никаких вопросов. С другой стороны, если вы выберете Mac
и sign_type
(по умолчанию hmac-sha-1
в большинстве реализаций), токен доступа будет сгенерирован и сохранен в секрете в диспетчере ключей в качестве атрибута, а зашифрованный секрет будет отправлен обратно как access_token
.
Да, вы можете использовать свою собственную реализацию token_type
, но это может не иметь большого смысла, поскольку разработчикам нужно будет следовать вашему процессу, а не стандартным реализациям OAuth.
Любой может определить "token_type" как расширение OAuth 2.0, но в настоящее время наиболее распространенным является тип токена-носителя.
https://tools.ietf.org/html/rfc6750
В основном это то, что использует Facebook. Однако их реализация немного отстает от последней спецификации.
Если вы хотите быть более безопасным, чем Facebook (или таким же безопасным, как OAuth 1.0, который имеет «подпись»), вы можете использовать тип токена «mac».
Однако это будет трудный путь, поскольку спецификация Mac все еще быстро меняется.
https://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05
источник
Из RFC 6750, раздел 1.2 :
Токен на предъявителя или токен обновления создается для вас сервером аутентификации. Когда пользователь аутентифицирует ваше приложение (клиент), сервер аутентификации затем переходит и генерирует для вас токен-носитель (токен обновления), который затем можно использовать для получения токена доступа.
Токен-носитель обычно представляет собой какое-то загадочное значение, создаваемое сервером аутентификации, оно не случайное, оно создается на основе того, что пользователь предоставляет вам доступ, а клиент, получающий доступ к вашему приложению.
См. Также: Информация заголовка Mozilla MDN .
источник