Нужен ли нам поток на стороне клиента, поток на стороне сервера или оба для реализации функции входа в систему с помощью Facebook?

StackOverflow https://stackoverflow.com//questions/9664804

Вопрос

В настоящее время на моем веб-сайте пользователи входят в систему, используя свой идентификатор входа и пароль, им также необходимо ввести свой email когда они зарегистрируются.Оба login_id и email столбец на users таблица имеет уникальный индекс. users таблица также хранит другие данные, связанные с пользователем, такие как gender,last_name,first_name но это необязательные поля (обнуляемые).

Есть два изменения, которые я хотел бы внести на сайт.

Во-первых, пользователи могут использовать свою электронную почту (помимо login_id) чтобы залогиниться.Новым пользователям при регистрации больше не нужно предоставлять login_id потому что они будут использовать свой адрес электронной почты для входа.

Второе изменение: они могут войти в систему через Facebook.Для новых пользователей, если они впервые войдут в систему с помощью Facebook, их идентификатор Facebook будет получен и сохранен в моей базе данных.Это означает, что мне придется добавить facebook_uid столбец на users стол.

Для существующих пользователей, когда они впервые входят в систему с помощью Facebook, я должен сначала получить их адрес электронной почты из их профиля Facebook, а затем проверить, существует ли уже запись с использованием этого адреса электронной почты в users таблица, если да, их идентификатор Facebook также будет сохранен в facebook_uid столбец в этой записи.

По данным Facebook, его платформа поддерживает два разных потока OAuth 2.0 для входа пользователя:поток на стороне сервера и поток на стороне клиента.Какой из них или оба необходимы для этого варианта использования?

Кроме того, какие проблемы можно ожидать при реализации функций, описанных выше?

Это было полезно?

Решение

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

Проблемы, которые могут произойти:Я не уверен, но могут существовать юридические ограничения на хранение идентификатора пользователя Facebook.Кроме того, что, если кто-то (не я, злой человек!) зарегистрируется с моим адресом электронной почты, и вы не подтвердите, что у него действительно есть доступ к этому адресу - тогда, когда я войду в систему через Facebook, приложение предположит, что мы являемся тот же человек и злой хакер теперь имеют доступ к моей учетной записи.Маловероятный сценарий, но может случиться...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top