Вопросы по OAuth Client
-
- Сообщения: 271
- Зарегистрирован: 2012.11.30, 07:33
Вопросы по OAuth Client
Поставил этот (https://github.com/yiisoft/yii2/tree/0d ... authclient) клиент, все работает. Разве что не соответствие было в названии файлов в виджете на github и доке и тех что установились через composer (OAuthChoice и Choice).
Собственно вопрос: есть ли демка как это правильно должно все работать? OAuth клиент возвращает атрибуты типа id, firstname, lastname, email, language - это все понятно, но хотелось бы какой-то рабочий пример. Как это вписать в регистрацию и/или логин правильно?
Собственно вопрос: есть ли демка как это правильно должно все работать? OAuth клиент возвращает атрибуты типа id, firstname, lastname, email, language - это все понятно, но хотелось бы какой-то рабочий пример. Как это вписать в регистрацию и/или логин правильно?
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Вопросы по OAuth Client
Про несоответствие, если не трудно, закиньте на github.
Демки нет. Демки в релизе будут.
Вписать примерно так:
1. Пароль уже проверили на стороне сервиса.
2. Ищем по базе запись.
3. Если есть — логиним.
4. Если нет, пишем в базу и логиним.
Собственно, всё.
Демки нет. Демки в релизе будут.
Вписать примерно так:
1. Пароль уже проверили на стороне сервиса.
2. Ищем по базе запись.
3. Если есть — логиним.
4. Если нет, пишем в базу и логиним.
Собственно, всё.
Нравится Yii? Давайте сделаем его лучше!.
-
- Сообщения: 271
- Зарегистрирован: 2012.11.30, 07:33
Re: Вопросы по OAuth Client
Насчет несоответсвия - моя ошибка, я похоже смотрел старый коммит, который исправили, так что на созданную мной по ошибке issue не обращайте внимания.Sam Dark писал(а):Про несоответствие, если не трудно, закиньте на github.
Демки нет. Демки в релизе будут.
Вписать примерно так:
1. Пароль уже проверили на стороне сервиса.
2. Ищем по базе запись.
3. Если есть — логиним.
4. Если нет, пишем в базу и логиним.
Собственно, всё.
По поводу клиента, я примерно так и сделал. Проверяю по email, но с регистрацией пока не разобрался. Получаеться надо редиректить нового пользователя на страницу регистрации, чтобы он указал там дополнительные данные (логин/пароль). Если вписать редирект в функцию successCallback в контроллере, то будет редиректить в popup окошке, а как сделать перенаправление в основном окне? Не могу найти тот участок кода что отвечает за редирект на главную, да и менять в самом экстеншене что-то не правильно будет. Как вариант можно конечно зарегать пользователя автоматом и самому сгенерировать пароль и логин по имени в email? и выслать данные на почту, но все равно хотелось бы знать.
P.S.
Нет ли у вас готового кода описания OAuth под VK?
Плюс ко всему получаеться полезен только email как идентификатор, а что делать с id от сервиса? или не использовать его вовсе?
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Вопросы по OAuth Client
Нет. Зачем вам вообще логин-пароль? Внешний сервис уже проверил всё.
Под VK у меня кода нет. id можно хранить в табличке привязок на случай если сервис не проверяет почту на уникальность или если хочется давать ссылку на аккаунт.
Под VK у меня кода нет. id можно хранить в табличке привязок на случай если сервис не проверяет почту на уникальность или если хочется давать ссылку на аккаунт.
Нравится Yii? Давайте сделаем его лучше!.
Re: Вопросы по OAuth Client
Есть предложение сделать свойство _normalizeUserAttributeMap публичным в yii\authclient\BaseClient для того, чтобы мапить поля соц. сетей в конфиге, а не экстендить каждый класс, ради того, чтобы переназначить имена полей.
Так же было бы неплохо, если бы, если свойство будет публичным, то была бы в нем поддержка замыканий.
Так же было бы неплохо, если бы, если свойство будет публичным, то была бы в нем поддержка замыканий.
-
- Сообщения: 271
- Зарегистрирован: 2012.11.30, 07:33
Re: Вопросы по OAuth Client
Подскажите как шаблонизировать этот виджет? Во вьюхе в файлах только код попап окошка с редиректом.
Последний раз редактировалось Vespertilio 2014.04.27, 10:52, всего редактировалось 1 раз.
Re: Вопросы по OAuth Client
AuthChoict свой поставьте и метод поменяйте renderMainContentVespertilio писал(а):Подскажите как шаблонизировать этот виджет? Во вьюхе в фалах только код попап окошка с редиректом.
Но проще в css
Re: Вопросы по OAuth Client
Уже совсем мозг взорван
Тут все понятно
выведет name и id
а если мне нужно какое-либо другое свойство? где его брать?
конкретно сейчас нужен email
ЗАранее благодарен
Код: Выделить всё
$oauthClient = \Yii::$app->authClientCollection;
$client = $oauthClient->getClient('facebook');
$code = $_GET['code'];
$user = $client->getUserAttributes();
Core::dump($user);
выведет name и id
а если мне нужно какое-либо другое свойство? где его брать?
конкретно сейчас нужен email
ЗАранее благодарен
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Вопросы по OAuth Client
Чтобы Facebook отдал email, его надо запросить. В OAuth это называется scope. Настраивается так:
Код: Выделить всё
'facebook' => [
'class' => 'yii\authclient\clients\Facebook',
'clientId' => 'aaa',
'clientSecret' => 'bbb',
'scope' => 'email',
],
Нравится Yii? Давайте сделаем его лучше!.
Re: Вопросы по OAuth Client
А с vk.com как e-mail запросить? если никак то как решаете эту проблему?
ភាសាខ្មែរ Yii2 - это кайф!
Re: Вопросы по OAuth Client
Точно так жеAkulenok писал(а):А с vk.com как e-mail запросить? если никак то как решаете эту проблему?
Re: Вопросы по OAuth Client
Спасибо большое!:)Sam Dark писал(а):Чтобы Facebook отдал email, его надо запросить. В OAuth это называется scope. Настраивается так:
Код: Выделить всё
'facebook' => [ 'class' => 'yii\authclient\clients\Facebook', 'clientId' => 'aaa', 'clientSecret' => 'bbb', 'scope' => 'email', ],
Re: Вопросы по OAuth Client
только не работает:(
я подозреваю, что сам FaceBook запрещает отдавать мыло
То есть дело в FaceBook
я подозреваю, что сам FaceBook запрещает отдавать мыло
То есть дело в FaceBook
Re: Вопросы по OAuth Client
ЗАРАБОТАЛО!!!
$t = $client->getUserAttributes();
еще раз СПС!
$t = $client->getUserAttributes();
еще раз СПС!
Re: Вопросы по OAuth Client
А если аккаунт без email (регались по телефону)Onotole писал(а):Точно так жеAkulenok писал(а):А с vk.com как e-mail запросить? если никак то как решаете эту проблему?
как решаете?
ភាសាខ្មែរ Yii2 - это кайф!
Re: Вопросы по OAuth Client
Прошу пользователя указать мылоAkulenok писал(а):А если аккаунт без email (регались по телефону)Onotole писал(а):Точно так жеAkulenok писал(а):А с vk.com как e-mail запросить? если никак то как решаете эту проблему?
как решаете?