[GET] Запрос авторизации

Endpoint: https://{instance}/oauth2/authorize

Метод: GET

Описание: запускает процесс авторизации для получения кода авторизации.

client_id
required
Идентификатор клиентского приложения.
redirect_uri
required
URI для перенаправления после успешной авторизации.
response_type
required
Тип ожидаемого ответа, должен быть code.
scope
required
Список запрашиваемых прав доступа, разделенных пробелами. См. справочник.
state
required
Уникальный идентификатор состояния для предотвращения атак.
code_challenge
Хэш кода верификации PKCE.
code_challenge_method
Метод хэширования кода верификации PKCE, по умолчанию plain.
prompt
Варианты значений:
  • none
  • login
  • consent
Используется при необходимости, узнайте подробнее о возможных значениях и сценариях их использования.

Приложение перенаправляет пользователя на URL авторизации сервера:

GET https://login.softline.com/oauth2/authorize?response_type=code&client_id=e7f2a45b-3198-4d0c-b2e9-c9dbbe2595e3&scope=auth.data.personal.get&redirect_uri=https://localhost/auth/callback

В этом примере передаются следующие параметры:

authorization_code
Код авторизации.
Возвращается только при успешной авторизации, как GET-параметр к redirect_uri.
state
Уникальный идентификатор состояния для предотвращения атак.
Должен соответсвовать параметру state из вашего запроса. Соответствие подтверждает, что вы получили ответ на отправленный вами запрос.
session_state
Уникальный идентификатор сессии пользователя.
Возвращается только успешной авторизации или при ошибке access_denied, как GET-параметр к redirect_uri. Используйте для отслеживания изменении сессии пользователя.
error
Код ошибки.
Параметр передается только в случае ошибки.
Возможные значения:
  • invalid_client - неверно указано значение client_id или redirect_uri.
  • unsupported_grant_type - client_id был не заполнен или неверно указан response_type.
  • access_denied - пользователь не был авторизован (например, нажал "выйти", сессия истекла, был разлогинен на стороне провайдера).
error_description
Описание ошибки.
Параметр передается только в случае ошибки.
message
Описание результата авторизации.
Параметр передается только в случае ошибки.

Если авторизация прошла успешно, пользователь будет перенаправлен на redirect_uri с кодом авторизации в параметре code.

Например, если redirect_uri равен "https://localhost/auth/callback",
то пользователь будет перенаправлен на: 

https://localhost/auth/callback?code=def50200b07...&state=s761MQGea2Yt...&session_state=7fd534dab... 

В ответе придет ошибка в теле страницы следующего вида:

{
     "error":"invalid_client",
     "error_description":"Client authentication failed",
     "message":"Client authentication failed"
}

Решение: необходимо указать корректный client_id, полученный у команды разработки Softline ID.

В ответе придет ошибка 400 и соощение в теле страницы следующего вида:

{
    "error": "unsupported_grant_type",
    "error_description": "The authorization grant type is not supported by the authorization server.",
    "hint": "Check that all required parameters have been provided",
    "message": "The authorization grant type is not supported by the authorization server."
}

Решение: необходимо указать корректный client_id, полученный у команды разработки Softline ID.

В ответе придет ошибка 400 и соощение в теле страницы следующего вида:

{
    "error": "unsupported_grant_type",
    "error_description": "The authorization grant type is not supported by the authorization server.",
    "hint": "Check that all required parameters have been provided",
    "message": "The authorization grant type is not supported by the authorization server."
}

Решение: указать у response_type значение = code.

В ответе придет ошибка 401 и соощение в теле страницы следующего вида:

{
    "error": "invalid_client",
    "error_description": "Client authentication failed",
    "message": "Client authentication failed"
}

Решение: необходимо указать корректное значение redirect_uri, т.е. один разрешенный callback-адрес из перечня URL перенаправления, который вы передали команде разработки Softline ID. Если у вас несколько разрешенных callback-адресов, то каждый передавать в отдельном запросе авторизации.

В ответе придет ошибка в get-параметрах redirect_uri:

/callback?
  state=Eqk5886Ch...
  &session_state=8d0717a9...
  &error=access_denied
  &error_description=The+resource+owner+or+authorization+server+denied+the+request.
  &hint=Unauthenticated&message=The+resource+owner+or+authorization+server+denied+the+request

Действия с вашей стороны: 

  • Если вы используете модуль управления сессией, то разлогиньте пользователоя, очистив локальную сессию.
  • В ином случае ошибка обозначает, что пользователь отказался давать доступ к своим данным, то есть, отменил вход. 
    При необходимости повторите запрос авторизации.