#facebook #authentication
#Facebook #аутентификация
Вопрос:
У меня есть Facebook signed_request
, который получен путем подписки на auth.login
событие и после входа пользователя в систему с помощью кнопки входа в Facebook
После декодирования у signed_request
меня есть следующая информация:
{'issued_at': 1318492701,
'code': 'AQCXI5aiyYtYLFNtkYhtKwDhO02lP[truncated]',
'user_id': '100000xxxxxxxxx',
'algorithm': 'HMAC-SHA256'}
Я не могу найти в документации signed_request. Что это такое code
и каково его использование?
Я думал, что это может быть использовано для получения кода авторизации, как указано в этой теме, но вместе с signed_request
I я также получаю токен доступа для пользователя в ответе от события входа в систему.
Комментарии:
1. Это signed_request из JavaScript SDK, верно? Код используется SDK, но не для аутентификации на стороне сервера. Это не задокументировано, поскольку это бесполезно для аутентификации.
2. Действительно, я получаю код из подписанного запроса authResponse, который я получаю, когда получаю статус входа пользователя, среди прочего.
3. @yoshi я прошу вас, пожалуйста, проверьте мой ответ спасибо
4. Материал Facebook сломан недокументирован ?! вздох
5. @Alexandre Couturon: Пожалуйста, отправьте свой предыдущий комментарий в качестве ответа.
Ответ №1:
Я не знаю, почему они не упоминают использование кода на странице документации для подписанных запросов. Код можно обменять на токен доступа, который является ключом к выполнению любых последующих запросов API Facebook.
Соответствующая документация здесь: https://developers.facebook.com/docs/authentication /
Имея этот код в руках, вы можете перейти к следующему шагу, аутентификации приложения, чтобы получить токен доступа, необходимый для выполнения вызовов API.
Чтобы аутентифицировать ваше приложение, вы должны передать код авторизации и секрет вашего приложения конечной точке токена Graph API — вместе с точно таким же redirect_uri, который использовался выше — в https://graph.facebook.com/oauth/access_token . Секрет приложения доступен из приложения разработчика и не должен быть передан кому-либо или встроен в какой-либо код, который вы будете распространять (вы должны использовать поток на стороне клиента для этих сценариев).
Комментарии:
1. Сначала я так и подумал, но если я попытаюсь использовать этот код для получения токена доступа, я всегда получаю исключение OAuth, в котором говорится, что код не может быть проверен. И формат кода также отличается, в нем есть два или три периода, так как коды, которые не находятся внутри signed_request, не имеют периодов и несколько длиннее.
2. @yoshi хороший ответ снова и снова 😉
3. @Danish Iqbal: уже видел это, в нем нет новой информации, относящейся к моему вопросу, поскольку информация, которую я ищу, не охвачена документацией. Просматривал это пару раз и не видел ни одного параметра «code», упомянутого в signedRequest, полученном от auth. ответ на вход.
Ответ №2:
Это signed_request из JavaScript SDK, верно? Код используется SDK, но не для аутентификации на стороне сервера. На самом деле, мы обновим документацию, чтобы отразить поведение signed_request.
Ответ №3:
этот код полезен для получения информации о пользователях, которые установили ваше приложение
но в любом случае скажите мне, какая информация вам нужна, тогда я могу дать вам пример кода
что ж, если вы снова проверите свой опубликованный код, вы увидите, что у вас есть идентификатор пользователя, поэтому вам не нужно использовать токен доступа для этого
но в любом случае для получения базовой информации и любой другой информации или публикации и удаления у вас есть два способа :
во-первых: сделайте это напрямую (нет необходимости в sdk, но сложнее) во-вторых: через sdk (это просто) я рекомендую вам использовать sdk amp;, если ваш язык программирования на стороне сервера — PHP, вы можете сделать это для получения базовой информации
<?php
include_once ('src/facebook.php');/// include sdk
////// config The sdk
@ $facebook = new Facebook(array(
'appId' => '*************',
'secret' => '*****************',
));
$user=$facebook->api('me','GET');
echo '<pre>';
print_r($user);
echo '</pre>';
?>
для загрузки
загрузите php sdk
Комментарии:
1. Как вы используете его, чтобы узнать, у каких пользователей установлено приложение? Я ничего не видел об этом в документации.
2. Я использую Python, так что это не очень полезно. Я знаю, как получить информацию о пользователе, я просто хочу знать, для чего
code
нужен подписанный запрос ИЗНУТРИ.3. этот код является вашим ключом для получения информации о пользователе, если вы пытаетесь получить данные напрямую, вам нужен токен доступа (например, для текущего пользователя) с таких URL -адресов graph.facebook.com/me?access_token=THE КОД, КОТОРЫЙ ВЫ ПОЛУЧАЕТЕ
4. Нет, код не является токеном доступа. Я получаю токен доступа отдельно. JS SDK возвращает authrespon с подписанным запросом и токеном доступа. Внутри подписанного запроса есть
code
.
Ответ №4:
Вы должны посетить этот официальный документ facebook и прочитать «Параметр signed_request» и его текст ниже для кода, который вы получаете после декодирования signed_request
Комментарии:
1. пожалуйста, смотрите официальную ссылку на документ fb в моем приведенном выше ответе спасибо 🙂