Взаимодействие с пользователем
Иногда OAuth 2.0 клиент заранее знает, что пользователь, работающий с ним, имеет активную сессию с сервисом авторизации. В этом случае клиент может попытаться получить авторизацию в автоматическом режиме без необходимости явного взаимодействия с пользователем через бразуер.
Для выполнения запроса в автоматическом режиме необходимо в его параметрах
передать дополнительный параметр prompt
со значением none
.
Пример
GET /STS/oauth/authorize?
client_id=eea2fd3f-5c70-4d74-a594-f1e7bf81b4d7
&resource=https:%2f%2fhostname%2fSignServer%2frest%2fapi
&scope=dss
&redirect_uri=http:%2f%2f127.0.0.1:9158%2f
&response_type=code
&prompt=none
Host: hostname
При указании prompt=none
результат будет возвращён сразу в HTTP-ответе.
Если это невозможно сделать, в HTTP-ответе будет содержаться ошибка
login_required
, означающая, что запрос необходимо повторить но уже без
параметра prompt
.
Пример
HTTP/1.1 302 Found
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Location: http://127.0.0.1:9158/?error=login_required#_=_
Content-Length: 0