Laravel Socialite использует OAuth 2.0. Это ужасно для фейсбука. Мне не нравится идея отправлять пользователей на страницу Facebook и возвращать их, когда мы можем использовать всплывающее окно.
Итак, мой план использовал стандартное всплывающее окно Facebook от javascript api
.
кулак - с использованием Базовая настройка
получить библиотеку JavaScript
секунда - заставить диалог входа в систему работать.
Это работает, и я получаю userID
и accessToken
.
Сейчас проблемы запускается
accessToken - устарел, и я не могу сохранить его в базе данных для последующего использования в качестве пароля.
Таким образом, существует альтернатива сохранению accessToken - я могу использовать другой API Facebook, известный как graph api
, чтобы получить пользователя по токену, если мой сервер сделал запрос API непосредственно в Facebook, например,
https://graph.facebook.com/me?access_token=...
Я бы получил user_id вот так
{
"имя": "Боб Марли",
"id": "111111"
}
и я могу быть уверен в этом, потому что я только что проверил токен непосредственно с сервера facebook. Звучит как идеальный мир.
Однако есть две вещи, которые заставляют меня нервничать:
1) Действительно ли я объединил 2 разных API или это стандартный подход?
2) Как мне удалось аутентифицировать пользователя без использования facebook app secret
? Где подвох?