swagger — как я могу использовать identityserver4 из моего приложения php

Мне нужно использовать последние новости с сайта FIBA, и они предоставили чванливый API который использует identityserver4 для системы авторизации

Наше приложение — PHP, и я попытался найти что-то связанное с php и identityserver, но не смог.

Я хочу отправить запрос на идентификационный сервер с php и получить от него токен доступа. Как я могу это сделать?

0

Решение

Для получения токена вы можете использовать (он работает на моей установке):

curl -d "client_id=<YOURCLIENT>&client_secret=<YOURCLIENTSECRET>&grant_type=password&username=<youruser>&password=<topsecretpassword>&scope=default openid" -X POST http://youtidentityserver4.tld/oauth/connect/token

Тогда вы получите что-то вроде:

{
"access_token": "eyJhbGciOiJSUz....long token",
"expires_in": 3600,
"token_type": "Bearer"}

Далее вы можете использовать следующий запрос для получения информации о пользователе:

curl -i http://youtidentityserver4.tld/oauth/connect/userinfo \
-H "scope: default openid" \
-H "Authorization: Bearer eyJhbGciOiJSUz....long token"

После выполнения этого вы должны получить что-то вроде:

{
"sub": "j2h4kh42k4242jhg4j2hg42k34gb2k"}

зависит от вашей пользовательской базы данных, настроенной за вашим IdentityServer4.

суб = сокращение от «subject» => уникальный идентификатор пользователя

Используйте те же области действия для запроса / токена, которые вы хотите использовать позже в / userinfo.
В противном случае вы получите сообщение об ошибке «достаточный_обзор»:

HTTP/1.1 403 Forbidden
Content-Type: text/plain; charset=UTF-8
Content-Length: 0
Connection: keep-alive
Date: Thu, 20 Sep 2018 15:52:40 GMT
Server: Kestrel
Cache-Control: no-store, no-cache, max-age=0
Pragma: no-cache
WwwAuthentication: Bearer
WwwAuthentication: error="insufficient_scope"

Если вам нужно больше областей, смотрите под Http: //youtidentityserver4.tld/oauth/.well-known/openid-configuration и посмотрите там под «scopes_supported». (замените youtidentityserver4.tld вашим доменом)

Чтобы реализовать все это в PHP, используйте некоторые из известных клиентов, таких как скручиваемость прямо или пропивать.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]