MyTetra Share
Делитесь знаниями!
Получение OAuth токена
Время создания: 29.11.2019 11:04
Раздел: INFO - Development - CUBA - REST
Запись: wwwlir/Tetra/master/base/1574996659j52bmsstm5/text.html на raw.githubusercontent.com

OAuth токен необходим для выполнения любого метода REST API (кроме случая анонимного доступа к REST API). Получить токен можно выполнив POST запрос по адресу

http://localhost:8080/app/rest/v2/oauth/token

Доступ к данному URL защищен с помощью базовой аутентификации с использованием идентификатора и пароля клиента REST API. Обратите внимание, что это не логин и пароль пользователя приложения. Идентификатор и пароль клиента REST API заданы в свойствах приложения cuba.rest.client.id и cuba.rest.client.secret (значения по умолчанию для этих свойств: client и secret). Заголовок Authorization запроса на получение токена должен содержать логин и пароль клиента, разделенные символом ":" и закодированные в base64.

Тип запроса на получение токена должен быть application/x-www-form-urlencoded, кодировка UTF-8.

Запрос должен содержать следующие параметры:

  • grant_type - всегда значение password.
  • username - логин пользователя приложения.
  • password - пароль пользователя приложения.
POST /oauth/token
Authorization: Basic Y2xpZW50OnNlY3JldA==
Content-Type: application/x-www-form-urlencoded

grant_type=password&username=smith&password=qwerty123 

Вы также можете использовать утилиту cURL:

curl -H "Content-type: application/x-www-form-urlencoded" -H "Authorization: Basic Y2xpZW50OnNlY3JldA==" -d "grant_type=password&username=admin&password=admin" http://localhost:8080/app/rest/v2/oauth/token 

Метод возвращает JSON объект:

{
  "access_token": "29bc6b45-83cd-4050-8c7a-2a8a60adf251",
  "token_type": "bearer",
  "refresh_token": "e765446f-d49e-4634-a6d3-2d0583a0e7ea",
  "expires_in": 43198,
  "scope": "rest-api"
} 

Значение токена содержится в поле access_token

Чтобы использовать токен, его нужно передать в заголовке запроса Authorization с типом Bearer, например:

Authorization: Bearer 29bc6b45-83cd-4050-8c7a-2a8a60adf251 

Свойство refresh_token содержит значение refresh токена. Он не может быть использован для доступа к защищённым ресурсам приложения, но он имеет большее время жизни по сравнению с access токеном и используется для получения нового access токена, когда старый токен истек.

Запрос на получение нового access токена с помощью refresh токена должен содержать следующие параметры:

  • grant_type - refresh_token.
  • refresh_token - значения refresh токена.
POST /oauth/token
Authorization: Basic Y2xpZW50OnNlY3JldA==
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&refresh_token=e765446f-d49e-4634-a6d3-2d0583a0e7ea 

См. также следующие свойства приложения, имеющие отношение к токенам:


 
MyTetra Share v.0.59
Яндекс индекс цитирования