Авторизация через AuthClient.
Авторизация через AuthClient.
Хотелось бы почитать про авторизацию через соц. сети. Я пытался придумать велосипед типа создания БД отдельно под юзеров, авторизирующихся через OAuth, но это вызовет очень большое кол-во проблем с определением пользователей. Вторая идея - записывать их в общую БД пользователей. Может кто рассказать про подходы, которые используются на практике?
Re: Авторизация через AuthClient.
А чем не устраивает подход https://github.com/yiisoft/yii2-authcli ... k-start.md ?
Re: Авторизация через AuthClient.
наверное имеется в виду, что при возможности регистрации через соцсети можно забыть через какую регистрировался в прошлый раз и получить несколько аккаунтов вместо одного.
самый очевидный и простой вариант - запретить регистрацию через соцсети а разрешить только авторизацию + прикрепление соцсетей к аккаунту.
т.е.
1. регистрируемся по емейл
2. прикрепляем в профиле соцсети к аккаунту
3. входим через прикрепленные соцсети или по емейл+пароль
самый очевидный и простой вариант - запретить регистрацию через соцсети а разрешить только авторизацию + прикрепление соцсетей к аккаунту.
т.е.
1. регистрируемся по емейл
2. прикрепляем в профиле соцсети к аккаунту
3. входим через прикрепленные соцсети или по емейл+пароль
Re: Авторизация через AuthClient.
У вас должны быть таблица пользователей и таблица с данными авторизации соц. сетей. Как в примере выше.
А вообще лучше, после запроса в соц.сети авторизовывать или предлагать зарегистрироваться(если нужны доп. данные), если есть или нет пользователя соответственно.
Самый очевидный и простой вариант - запретить регистрацию через соцсети, когда уже есть пользователь с такими данными.самый очевидный и простой вариант - запретить регистрацию через соцсети а разрешить только авторизацию + прикрепление соцсетей к аккаунту.
А вообще лучше, после запроса в соц.сети авторизовывать или предлагать зарегистрироваться(если нужны доп. данные), если есть или нет пользователя соответственно.
Re: Авторизация через AuthClient.
каким образом?
тут разве что по email, но не все его отдают, и не факт, что он будет одинаковым
Re: Авторизация через AuthClient.
Вам соц. сети отдают уникальный идентификатор, иначе какой вообще смысл в oauth и прочем?
Re: Авторизация через AuthClient.
ещё раз
1. я захожу на сайт
2. вижу форму для входа/регистрации по емейл + возможность входа/регистрации через 3 популярные соц сети
3. я зарегистрирован во всех 3х соцсетях и не помню, через какую регистрировался на данном сайте(или вообще регистрация была по email)
4. после нескольких таких вот попыток залогиниться на сайте у меня будет от 1 до 4х аккаунтов, которые между собой никак не связаны
ps. это не просто какой-то абстрактный пример, это ситуация в которую я, как пользователь, довольно часто попадаю.
Re: Авторизация через AuthClient.
Я зарегистрировался на сайте и привязал одну соц. сеть. Потом забыл.
Зарегистрировался снова. Привязал другую соц. сеть. Ну я забыл про первую соц. сеть. Я же склерозник)
Имеем 2..n несвязанных аккаунта.
Вариантов масса. Но никаких сложностей с точки зрения идентификации нет. Регистрация через соц. сеть дает возможность пользователю не вводить и запоминать пароль, подтверждать email и прочее.
Привязывайте сразу все аккаунты.
Зарегистрировался снова. Привязал другую соц. сеть. Ну я забыл про первую соц. сеть. Я же склерозник)
Имеем 2..n несвязанных аккаунта.
Вариантов масса. Но никаких сложностей с точки зрения идентификации нет. Регистрация через соц. сеть дает возможность пользователю не вводить и запоминать пароль, подтверждать email и прочее.
Привязывайте сразу все аккаунты.
Re: Авторизация через AuthClient.
и вот на самом интересном история обрывается...
да, и при этом создает другие проблемыРегистрация через соц. сеть дает возможность пользователю не вводить и запоминать пароль, подтверждать email и прочее.
ага, все пользователи вашего сайта обязательно это сделают!Привязывайте сразу все аккаунты.
Re: Авторизация через AuthClient.
Ничего не обрывается, там точка.и вот на самом интересном история обрывается...
Какие проблемы? Надуманные вами? Вы при всем желании не сможете 100% связать человек <-> пользователь. Приведите реальный кейс... Ну, конечно, отключение регистрации через сети как-то что-то решает.да, и при этом создает другие проблемы
Ряд пользователей тупо закроет ваш сайт при требовании заполнять какую-то форму для регистрации. Ваша задача упростить им жизнь, а не вводить ограничения...
Сделают, если захотят.ага, все пользователи вашего сайта обязательно это сделают!
Re: Авторизация через AuthClient.
я вижу что там точка, но было утверждение, что вариантов масса, но ни одного приведено не было
никто не говорит о привязке реальный человек-пользователь. для этого паспорт/ЭЦП/BankId нужно спрашивать, а не соц. сети.
реальный кейс - ок. я зарегистрировался, пополнил счет на сайте, частично потратил деньги, частично они остались. в следующий раз логинюсь не через ту соц.сеть, а на счету 0, т.к. у меня теперь не 1, а 2/3/4 аккаунта.
или у меня была история покупок и она пропала(на самом деле не на том аккаунте)
или у меня была переписка с другими пользователями и она пропала(на самом деле не на том аккаунте)
и т.п.
вариантов масса
с таким же успехом можно упростить регистрацию до ввода только емейла(пароль отправлять по почте и сразу логинить, без подтверждения)
это вообще без комментариев.(должно было быть, но я не сдержался ) начинали вроде с удобства для пользователя, а закончили типичным "не прикрепил аккаунт - сам себе злобный буратино".
большинство пользователей вообще не знают и не хотят знать как оно там у вас работает. а вот вопросы "куда пропали мои деньги/история/переписка" будут обязательно
ps. я в общем то не призываю отказаться от регистрации через соцсети, просто проблемы, которые при этом возникают должны понимать и разработчик и заказчик, и уже на основании этих знаний принимать решение. как я уже писал выше, самое простое - отказаться от регистрации через соц. сети, оставив вход через них.
Re: Авторизация через AuthClient.
Я еще вам повторю, нет возможности(или около того) ограничить человека 1 аккаунтом. Есть масса вариантов, когда человек может зарегистрировать несколько аккаунтов: не смог вспомнить пароль (было лень\не знал, что можно восстановить, нет доступа к email), намеренная регистрация n-аккаунтов, забыл, что вообще уже регистрировался... Хватит?я вижу что там точка, но было утверждение, что вариантов масса, но ни одного приведено не было
Ни что из перечисленного, ни телефон не дает 100% вероятности, лишь только подтверждает, что за аккаунтом реальный человек. Да это повышает шанс уникальности, не более.для этого паспорт/ЭЦП/BankId нужно спрашивать
Мне бы тоже следовало сдержаться, но нет Сравнили жопу с пальцем, еще привели, как аргумент.это вообще без комментариев.(должно было быть, но я не сдержался ) начинали вроде с удобства для пользователя, а закончили типичным "не прикрепил аккаунт - сам себе злобный буратино".
Я прекрасно понял ваш кейс с дублями, он реален, никто не спорит. Но тот же кейс может быть с парой логин-пароль. Как вы отключением регистрации ее решите, я не понимать... А то, что ряд пользователей специально использует разные соц. сети для входа под разными аккаунтами, вы, наверное, в первый раз слышите...
У вас в любом случае будет некая уникальная информация для идентификация пользователя в системе. Будут какие-то коллизии, потеря информации? Вы сами ответили...
Re: Авторизация через AuthClient.
С регистрацией могут быть те же проблемы.ок. я зарегистрировался, пополнил счет на сайте, частично потратил деньги, частично они остались. в следующий раз логинюсь не через ту соц.сеть, а на счету 0, т.к. у меня теперь не 1, а 2/3/4 аккаунта.
или у меня была история покупок и она пропала(на самом деле не на том аккаунте)
или у меня была переписка с другими пользователями и она пропала(на самом деле не на том аккаунте)
"Как говорит наш любимый шэф: если человек идиот, то это надолго"
Среднестатистический пользователь - идиот, знаю, как когда-то сотрудник техподдержки крупного хостинга
Re: Авторизация через AuthClient.
Не совсем. Теми же они будут, если при неправильном вводе емейла-пароля при логине автоматически проводить регистрацию
Re: Авторизация через AuthClient.
пара тезисов:
- когда человек логинится через соцсеть, он логинится в учетную запись yii, к которой привязана соцсеть через уникальный id соцсети
- если человек логинится через соцсеть, которая не привязана к аккаунту yii, но совпадают email'ы, мы не можем автоматически их связать, т.к. нет уверенности, что email проверен на стороне соцсети (может сложиться ситуация, когда человек добавил в свою соцсеть чужое мыло, а потом залогинился с чужим мылом в чужой аккаунт yii).
Из этого следует:
а) человек может создать аккаунт, зарегистрировавшись с помощью соцсети
б) человек может добавить соцсети из своего аккаунта
в) человек не должен иметь возможности попасть в аккаунт с непривязанной через первые два пункта соцсети
- когда человек логинится через соцсеть, он логинится в учетную запись yii, к которой привязана соцсеть через уникальный id соцсети
- если человек логинится через соцсеть, которая не привязана к аккаунту yii, но совпадают email'ы, мы не можем автоматически их связать, т.к. нет уверенности, что email проверен на стороне соцсети (может сложиться ситуация, когда человек добавил в свою соцсеть чужое мыло, а потом залогинился с чужим мылом в чужой аккаунт yii).
Из этого следует:
а) человек может создать аккаунт, зарегистрировавшись с помощью соцсети
б) человек может добавить соцсети из своего аккаунта
в) человек не должен иметь возможности попасть в аккаунт с непривязанной через первые два пункта соцсети