Безопасность OAuth API Facebook

#facebook #api #oauth #oauth-2.0

#Facebook #API #oauth #oauth-2.0

Вопрос:

Я хочу разрешить пользователям подключаться к моему веб-сайту, используя свою учетную запись Facebook.
Сначала пользователь авторизует мое приложение, а затем я получаю токен доступа. Проблема в том, что я должен в первый раз зарегистрировать пользователя, а в следующий раз автоматически авторизовать его на основе его электронной почты facebook.

Как мне создать БЕЗОПАСНЫЙ способ автоматического входа пользователя в систему? Я использую чистый javascript, но я не могу найти никакого способа создать безопасный механизм.

Спасибо.

Ответ №1:

Facebook должен справиться со всем этим за вас — когда пользователи вернутся на ваш веб-сайт, они могут нажать кнопку «Войти» (javascript SDK), и facebook должен вернуть вам токен доступа.

Однако, возможно, я неправильно понял вопрос.

Комментарии:

1. Да, но как мне выполнить автоматический вход в систему после регистрации пользователя? Сначала я проверяю, существует ли электронное письмо, если нет — это первый раз, когда он использует соединение, если оно существует — я должен автоматически авторизовать его в соответствии с адресом электронной почты. javascript sdk небезопасен для публикации подобных переменных (я думал о получении токена доступа, а затем о публикации со своего сервера для проверки электронной почты)

2. Почему вы не думаете, что SDK безопасен для этого? Я устал от использования SDK, но я думаю, что сочетание developers.facebook.com/docs/reference/javascript/… наряду developers.facebook.com/docs/reference/javascript/FB.login следует делать то, что вы хотите

3. Хорошо, но мне нужно подтвердить электронную почту на моей стороне. Это означает, что электронное письмо каким-то образом отправляется, и javascript легко манипулировать. Это должно быть что-то вроде получения токена доступа электронной почты (через JS), затем заставить мой сервер отправить токен доступа facebook и сравнить, соответствует ли полученное электронное письмо предыдущему (чтобы пользователь не взламывал)

4. это то, что я, наконец, сделал… получил токен доступа -> ОТПРАВИТЬ запрос с ним мне / ?access…. —> получил подробную информацию от Facebook с помощью сервера, а не клиента