Facebook OAuth 2.0 «код» и «токен»

Зачем вам нужны и «код», и «токен» в потоке аутентификации Facebook OAuth2, как описано здесь: https://developers.facebook.com/ docs / authentication / ?

Если вы посмотрите ссылку на диалоговое окно OAuth ( https://developers.facebook.com/docs/reference/dialogs/oauth/ ), вы увидите, что использовать токен только для получения информации о пользователе, и если вы укажете параметр response_type как токен или код, токен , тогда вы получите токен на первый раз.

Почему вам нужно получить «код», а затем использовать этот код для получения «токена», а не получать токен напрямую?

Я думаю, я неправильно понимаю кое-что о том, как работает OAuth, но он похоже, вы полностью избегаете запроса к https://graph.facebook.com/oauth/access_token , если получаете токен в первый раз в диалоге.

61
задан Scott T. 26 August 2015 в 05:42
поделиться

1 ответ

В OAuth 2.0 с Facebook полное понятие просто следующие.

Шаг 1. Получите "Код авторизации" ПОЛУЧИТЬ запросом

request URI: https://www.facebook.com/dialog/oauth
Params:
    response_type=code
    client_id={add your "App id" got by registering app}
    redirect_uri={add redirect uri defined at the registration of app}
    scope={add the scope needed in your app}
Headers: None

Шаг 2. Получите "Маркер доступа" путем отправки кода авторизации как запроса POST

    URI: https://graph.facebook.com/oauth/access_token
    Params:
        grant_type=authorization_code
        client_id=<add your "App id" got by registering app>
        redirect_uri=<add redirect uri defined at the registration of app>
        code=<obtained authorization code from previous step>
    Headers:
        Authorization:Basic encode <App Id:App Secret> with base64 
        Content-Type:application/json

Шаг 3. Используйте маркер доступа, полученный от вышеупомянутого шага, и получите пользовательские ресурсы

0
ответ дан 24 November 2019 в 17:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: