5

Веб-приложение поддерживает вход через Facebook с помощью JavaScript SDK.Проверка доступа к Facebook на сервере

Проверка подлинности на Facebook происходит на стороне клиента. После успешного выполнения вызывается FB.getLoginStatus(), а токен аутентификации и идентификатор пользователя отправляются на сервер.

Веб-приложение хранит идентификатор пользователя Facebook в базе данных.

Как сервер знает, что пользователь зарегистрировался успешно и что токен аутентификации и идентификатор пользователя не были подделаны на стороне клиента? Есть ли способ сделать эту проверку на стороне сервера без отправки запроса на сервер Facebook?

+1

Нет, вам нужно будет позвонить серверам FB для проверки токена доступа. – CBroe

+0

Спасибо, прошло некоторое время с тех пор, как я последний раз это делал. Кажется, я помню, что есть что-то, что можно сделать с общим ключом и OAuth, чтобы проверить, что токен аутентификации действителен. –

+0

https://developers.facebook.com/docs/facebook-login/access-tokens/#debug – CBroe

ответ

1

Согласно моему комментарию выше, вы можете сделать это, перенаправляя параметр authResponse.signedRequest на сервер и декодируя/проверяя его на сервере, не отправляя запрос на сервер на сервер Facebook.

+0

Я не понимаю - если вы подтвердите его на стороне клиента, как сервер знает, что он действителен, когда он его получает? – markmnl

+0

Это было время от времени, так что может быть неправильно, но из памяти: - логин происходит в браузере, отправив запрос на сервер Facebook - сервер Facebook возвращает authResponse.signedRequest, который не может быть незашифрован браузером - вы может переадресовать authResponse.signedRequest из браузера на ваш сервер, ваш сервер может дешифровать его, чтобы проверить его действие и был подписан Facebook –

 Смежные вопросы

  • Нет связанных вопросов^_^