#php #facebook #session #tracking
#php #Facebook #сеанс #отслеживание
Вопрос:
Я пытаюсь внедрить аутентификацию Facebook в свой веб-проект. Мне удалось заставить логин работать просто отлично, но я не уверен относительно того, как действовать дальше.
Мне нужно постоянно проверять, что пользователь вошел в систему и прошел проверку подлинности при использовании моего приложения. В предыдущих проектах я добивался этого, сохраняя идентификатор пользователя и пароль в файлах cookie и выполняя проверку в таблице mysql «users» при каждом вызове страницы php.
Я не нашел ни одного руководства, в котором описывалось бы, как это сделать с Facebook, поскольку все руководства заканчиваются после завершения входа в систему.
Я подумываю сохранить FB_UID в переменной сеанса php, а затем сверить его с таблицей mysql «users», чтобы проверить, правильно ли это при каждом вызове страницы php. Однако у меня возникает ощущение, что в этом нет необходимости, и что для этой цели можно использовать переменные сеанса FB. Любые мысли или идеи приветствуются!
Я, конечно, внедрю https, когда сайт выйдет в Интернет из-за проблем с безопасностью сеанса php.
Комментарии:
1. Как вы реализовали аутентификацию Facebook?
2. «сохранение идентификатора пользователя и пароля в файлах cookie» , ошибки новичка № 1 и № 2.
3. Принцип здесь такой же, как и в других ваших проектах. Вам нужен уникальный идентификатор (Facebook userId) для сохранения в сеансе, чтобы проверять достоверный источник данных (база данных или сам FB). Пожалуйста, не сохраняйте это в файлах cookie и, пожалуйста, используйте какой-нибудь соленый хэш для его проверки. 🙂
4. @Vivek Я использую php API для извлечения FB_UID и сравнения его с моей таблицей пользователей. Если он соответствует любому из пользователей в таблице, у меня есть зарегистрированный пользователь. Если нет, я зарегистрирую нового пользователя, используя user_data из FB, и продолжу оттуда.
5. @netcoder Со времени моего последнего веб-приложения я узнал несколько вещей, одна из которых заключается в том, чтобы не сохранять uid / pwd в файлах cookie 🙂 Есть мысли о том, какой источник данных предпочтительнее, db или fb?
Ответ №1:
Когда пользователь входит в свою учетную запись Facebook, аутентифицируйте это использование в базе данных (проверьте имя пользователя, пароль, …). Если они совпадают, создайте сеанс (ы). С этого момента используйте сеанс для аутентификации.
С помощью вышеуказанного способа люди могут перехватывать сеанс. Включение cookie может предотвратить это.
Я надеюсь, что это поможет.
Ответ №2:
Вы можете использовать FB.Вызов Event.subscribe(). С веб-сайта:-
Глобальные события, на которые вы можете подписаться:
- auth.логин запускается при входе пользователя в систему
- auth.authResponseChange — запускается при изменении authResponse
- auth.StatusChange — запускается при изменении статуса…
Ответ №3:
При аутентификации пользователя facebook, если он FB_UID
соответствует вашей users
таблице, сохраняйте переменную сеанса php FB_UID
и проверяйте, установлена ли переменная сеанса php или нет, при каждой загрузке страницы. Наконец, когда пользователь выходит из системы, отключите переменную php session.