Почему делают Вам нужны и "код" и в "маркер" в потоке аутентификации Facebook OAuth2, как описано здесь: https://developers.facebook.com/docs/authentication/?
При рассмотрении диалоговой ссылки OAuth (https://developers.facebook.com/docs/reference/dialogs/oauth/), на Вас кажется, что только когда-либо используют маркер для выборки информации о пользователе, и если Вы указываете response_type
параметр как token
или code,token
, затем Вы получаете маркер на первом разе.
Почему необходимо получить "код" и затем использовать код для получения "маркера" в противоположность получению маркера непосредственно?
Я предполагаю, что неправильно понимаю что-то основное о том, как OAuth работает, но кажется предотвращением запроса к https://graph.facebook.com/oauth/access_token
полностью, если Вы получаете маркер в первый раз с диалоговым окном.
В 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. Используйте маркер доступа, полученный от вышеупомянутого шага, и получите пользовательские ресурсы