3

Попытка добавить facebook login в существующую систему входа в проект, над которым я работаю. Построен с угловым, используя FB JS SDK. Это прежде всего для входа в систему без трения, и в настоящее время это не связано с использованием токенов доступа для дальнейших вызовов с помощью FB API.Facebook войдите в существующую базу данных пользователей и введите токены

Так как новый пользователь, они попали в FB логин, примите разрешения и т.д., и он выстреливает меня маркер доступа и т.д. Новый пользователь создается в моей БД, вместе с accesstoken, FB userid и т.д.

Как теперь аутентифицировать пользователя с помощью userid и accesstoken, которые теперь хранятся в моей БД? Насколько я вижу, токен доступа меняется практически на каждую загрузку/запрос страницы, поэтому в следующий раз, когда пользователь набирает логин FB, или я проверяю статус входа в FB, единственная постоянная вещь, которую у меня есть, - это userid.

Сделали различные показания на SO и FB документы, например:

https://developers.facebook.com/docs/facebook-login/web https://developers.facebook.com/docs/facebook-login/multiple-providers https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow#checktoken

How should a Facebook user access token be consumed on the server-side?

... хотя это только служил, чтобы запутать дальше.

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

Так что мой вопрос: Как безопасно аутентифицировать своих пользователей FB с помощью своего партнера в моей собственной БД?

+0

Вам еще нужно выполнить логику входа в FB, когда пользователь снова посещает ваш сайт. В противном случае ваш сайт не будет знать, что пользователь зарегистрировался в Facebook и разрешил ваше приложение. – CBroe

+0

@CBroe yeah ofc, но когда я проверяю статус входа в следующий раз, когда пользователь посещает, и я передаю 'userid' и' accesstoken' в мой процесс входа в систему, 'userid' - единственное поле, которое я могу проверить, поскольку 'accesstoken' отличается. Это упрощает захват сеанса, просто передавая процесс известному пользователю. Так что я пропущу? :) – Horse

+0

Используйте токен доступа, чтобы сделать запрос API для '/ me', и используйте идентификатор пользователя, который вы туда вернетесь. – CBroe

ответ

4

Запрос на вход в Facebook возвращает идентификатор пользователя + краткосрочный токен доступа (на стороне клиента).

Используйте серверную часть Facebook SDK для check the validity of the access token (вернет поля user_id и app_id, если они действительны).

Вы можете доверять полю user_id, возвращенному API Facebook, для проверки существующей базы данных пользователей.

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