Нормальна ли практика идентефикации юзера по почте при условии того что провайдеров для логина больше одного?
Например у меня в проекте возможен логин через два провайдер. Гугл и фейсбук.
Я не особо понимаю как это должно работать если почта на фейсбук и гугл одна и та же.
1. Юзер логинится через фейсбук, я получаю его имя, эмейл, фотку. Вывожу ее, сохраняю данные юзера себе в бд, чтобы потом например получить список "избранного" этого юзер
2. Этот же юзер, выходит из аккаунт и логинится через гугл с такой же почтой которая былы привязана и к фейсбуку, в итоге я не сохраняю юзера в бд, так как такая почта уже существует
В итоге все дальнейшие манипуляции с аккаунтом юзера я провожу через почту, то есть идентифицирую его через почта.
Юзер нажал лайк, я делаю запрос в бд с почтой текущего юзера и записываю текущий пост как лайкнутый.
Все что я описал это корректная практика?Или как делают обычно?
Дополнительно:
Эти openid провайдеры (гугл, фейсбук, одноклассники и проч) любят по желанию задней пятки блокировать "приложение", к которому привязана аутентификация.
В результате ваши пользователи в один прекрасный день не смогут залогиниться.
А если зарегать новое "приложение", то эти же пользователи будут там проиходить под новыми айдишниками (ну внутри гугла, а в этом openid, т.е. для вас они будут выглядеть как новые пользователи).
Но исходя из вышеописанного я бы при авторизации всегда бы запрашивал у oauth-провайдера email и идентифицировал бы юзера уже по нему. Заодно и есть куда письмо послать в случае чего. В т.ч. в случае восстановления доступа к аккаунту.
Например у меня в проекте возможен логин через два провайдер. Гугл и фейсбук.
не все соцсети отдают почту юзеров, но все отдают его уникальный идентификатор внутри своей сети. Поэтому ты должен сохранять информацию об внешнем id и из какой он соцсети. А еще юзер может поменять почту, в одной соцсети, а в другой нет, и т.п.
Юзер нажал лайк, я делаю запрос в бд с почтой текущего юзера и записываю текущий пост как лайкнутый.
нет, почту ты используешь только для идентификации юзера, вся внутренняя работа уже не с ней, а с внутренними id.
- прблема в том что текущие провайдеры почему то не отдают мне айди
- окей, ошибка. Получаю айди, но только при логине, то есть во время сессии я его уже получить не могу, то есть мне его надо где то сохранить, но где обычно хранят такие данные?
- godsplane, в базе хранят
- godsplane, по идее ты можешь с полученным токеном запросить снова личные данные пользователя.
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Идентификация пользователя по электронной почте является распространенной практикой во многих веб-сервисах. Однако, при наличии нескольких провайдеров для входа (например, Google, Facebook, Twitter), важно оценить некоторые важные моменты.
1. Удобство для пользователя: Использование электронной почты для идентификации пользователя является удобным и привычным способом для большинства пользователей. Они могут использовать одну и ту же электронную почту для входа в различные провайдеры.
2. Безопасность: Важно обеспечить безопасность данных пользователей при использовании электронной почты для идентификации. Рекомендуется использовать дополнительные механизмы аутентификации, такие как двухфакторная аутентификация, чтобы защитить учетные записи пользователей.
3. Конфиденциальность: При использовании электронной почты для идентификации пользователя необходимо обеспечить конфиденциальность личных данных. Важно хранить информацию о пользователях в зашифрованном виде и следовать стандартам безопасности данных.
4. Возможность выбора провайдера: Пользователям следует предоставить возможность выбора провайдера для входа, если у них есть несколько учетных записей. Например, они могут использовать Google для одной учетной записи и Facebook для другой.
Итак, использование электронной почты для идентификации пользователя при наличии нескольких провайдеров для входа может быть нормальной практикой, но важно учитывать аспекты безопасности, конфиденциальности и удобства для пользователей. Важно также следовать лучшим практикам в области защиты данных и обеспечения безопасности учетных записей пользователей.