Попытка добавить 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 с помощью своего партнера в моей собственной БД?
Вам еще нужно выполнить логику входа в FB, когда пользователь снова посещает ваш сайт. В противном случае ваш сайт не будет знать, что пользователь зарегистрировался в Facebook и разрешил ваше приложение. – CBroe
@CBroe yeah ofc, но когда я проверяю статус входа в следующий раз, когда пользователь посещает, и я передаю 'userid' и' accesstoken' в мой процесс входа в систему, 'userid' - единственное поле, которое я могу проверить, поскольку 'accesstoken' отличается. Это упрощает захват сеанса, просто передавая процесс известному пользователю. Так что я пропущу? :) – Horse
Используйте токен доступа, чтобы сделать запрос API для '/ me', и используйте идентификатор пользователя, который вы туда вернетесь. – CBroe