Подтвердить что ты не робот

Токен доступа к Facebook: серверные и потоки на стороне клиента

Facebook docs:

Платформа Facebook поддерживает два разных потока OAuth 2.0 для входа пользователя: серверная (известная как поток кода аутентификации в спецификации) и клиентская сторона (известная как неявный поток). Поток на стороне сервера используется всякий раз, когда вам нужно вызвать Graph API с вашего веб-сервера. Поток на стороне клиента используется, когда вам нужно совершать вызовы API-интерфейса Graph от клиента, например JavaScript, работающий в веб-браузере или из собственного мобильного или настольного приложения.

В чем разница между токенами доступа, взятыми этими потоками? Похоже, что они отличаются друг от друга.

Можно ли использовать токен потока на стороне сервера на клиенте? Иначе, можно ли использовать токен потока на стороне клиента на сервере?

4b9b3361

Ответ 1

В настоящее время Facebook говорит об этом access_tokens. На стороне сервера OAuth

если access_token генерируется с помощью вызова OAuth на стороне сервера, в результате access_token будет иметь более длительный срок действия по умолчанию. Если вызов выполняется, пока существует действительный долговременный user access_token для этого пользователя, возвращаемый пользователь access_token из этот второй звонок может быть таким же или может быть изменен, но в любом если время истечения будет установлено на длительное время истечения срока действия.

Где, как поток OAuth на стороне клиента, вы получите существующий, несрочный, недолговечный пользовательский доступ_token. Чтобы сделать этот access_token долговечным, facebook предоставляет новую конечную точку, которая обменивает короткоживущий access_token с access_token с более длительным сроком службы. Конечная точка

https://graph.facebook.com/oauth/access_token?             
    client_id=APP_ID&
    client_secret=APP_SECRET&
    grant_type=fb_exchange_token&
    fb_exchange_token=EXISTING_ACCESS_TOKEN 

Также обратите внимание, что

В настоящее время долговременный пользовательский доступ к домену будет действителен в течение 60 дней в то время как краткосрочные пользователи access_tokens в настоящее время действительны от 1 до 2 часа.

Выдержка из https://developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal/

Ответ 2

Для тех, кто, как я, сталкиваются с той же проблемой в 2014 году, Facebook улучшил документацию по токенам доступа.

Токены переносятся

Одним из важных аспектов понимания токена доступа является то, что они переносимы. После того, как у вас есть токен доступа, вы можете использовать его для совершения звонков с мобильного клиента, веб-браузера или с сервера на серверы Facebook. Если на клиенте получен токен, вы можете отправить этот токен обратно на ваш сервер и использовать его при вызове между серверами. Если токен получен через вызов сервера, вы также можете отправить этот токен клиенту, а затем выполнить вызовы с клиента.

(из https://developers.facebook.com/docs/facebook-login/access-tokens/#portabletokens)

Итак, да, вы можете использовать токены доступа от клиента на сервере и наоборот; как уже говорилось на Навэне, разница в том, что клиентские токи недолговечны, в то время как серверные долгоживут. Вы также можете конвертировать краткосрочный токен в долгоживущий токен, следуя указаниям здесь: https://developers.facebook.com/docs/facebook-login/access-tokens/#extending

Ответ 3

A пользовательский токен доступа (и токен доступа страницы) будет таким же, как на стороне сервера, так и на стороне клиента (кроме, возможно, для истечения отметки времени).

Ток доступа приложение будет точно таким же, как на стороне сервера, так и на стороне клиента.

Ответ 4

Токен может использоваться для совершения вызовов API, поскольку он представляет собой аутентификацию и авторизацию для выполнения чего-либо.

Код нельзя использовать напрямую для вызова любого API. Это должно быть сначала выкуплено с вашим секретным приложением, чтобы получить токен.

Другими словами, код похож на зашифрованный токен, который может расшифровать только сторонние приложения с помощью секретного приложения.

Кстати, секрет вашего приложения должен появляться только в коде сервера, никогда в мобильном или веб-клиенте.

Видео в основном объясняет все это примерно в 13:00 https://developers.facebook.com/docs/facebook-login/security