Sylius / FriendsOfSymfony: Что такое «тип токена»? - PullRequest
0 голосов
/ 30 мая 2019

В документации к REST API Sylius указано, что его система авторизации oAuth поддерживает три типа предоставления.

php bin/console sylius:oauth-server:create-client \
    --grant-type="password" \
    --grant-type="refresh_token" \
    --grant-type="token"

Тип предоставления password позволяет вам получить токен из /api/oauth/v2/token, используя имя пользователя и пароль администратора (при условии, что пользователь имеет роль ROLE_API_ACCESS).

Когда вы получаете этот токен, он приходит с access_token и refresh_token.

{
    "access_token":"ODE0NzA2NmU1NGVkNDc5ODNiNjcxZDBhZTA0NGY3MzY4NjBlMTc3ZDk0ZjM3MTIyOTlkMTQzMWU3YjM3ODc5ZQ",
    "expires_in":3600,
    "token_type":"bearer",
    "scope":null,
    "refresh_token":"NjNlNGY1YTQ5NmJhMzZiNzdlY2JmMzQyZDc5MGZkYTA5Mzg4MDc2MmRmZTRmOWE0MmMwNzU4NzBmMGM3YzVmZQ"
}

Когда срок действия вашего токена истекает, и если у вашего клиента тип предоставления refresh_token, вы можете использовать конечную точку /api/oauth/v2/token для получения нового токена с помощью параметра / аргумента refresh_token.

Так что же такое token тип гранта? Когда я думаю об этом, я застреваю на вопросе: «Как вы можете получить токен из /api/oauth/v2/token, если у вас нет токена?» или «Если у вас уже был токен, срок действия которого не истек, зачем вам использовать token для получения нового?»

Так чего мне не хватает? Для чего нужен тип предоставления токена?

1 Ответ

1 голос
/ 30 мая 2019

Существует несколько типов грантов, предоставляемых OAuth2. Смотрите их здесь .Я не уверен точно, какой из них используется sylius, когда вы запрашиваете "token", но я предполагаю код авторизации.

The most common OAuth 2.0 grant types are listed below.

   Authorization Code
   Implicit
   Password
   Client Credentials
   Device Code
   Refresh Token
...