Отслеживание сеанса — если пользователь вошел в систему

#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.