Посоветуйте плагин авторизации через соцсети

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
mikadi
Сообщения: 25
Зарегистрирован: 2016.05.06, 10:16

Посоветуйте плагин авторизации через соцсети

Сообщение mikadi » 2017.04.18, 15:26

Нужно реализовать авторизацию через соцсети, перед тем как начать велосипедить, решил спросить может есть нормальное готовое решение?


mikadi
Сообщения: 25
Зарегистрирован: 2016.05.06, 10:16

Re: Посоветуйте плагин авторизации через соцсети

Сообщение mikadi » 2017.04.21, 13:24

Спасибо большое, только у меня вопрос поэтому плагину. А конкретно по этой части. Я пытаюсь сделать авторизацию через google.

Код: Выделить всё

$authIdentity = Yii::app()->eauth->getIdentity($service);
            $authIdentity->redirectUrl = Yii::app()->user->returnUrl;
            $authIdentity->cancelUrl = $this->createAbsoluteUrl('/');
вот эта штука authIdentity->redirectUrl как я понимаю это путь в случае успешной авторизации.
я сделал метод foo в том же контроллере.
В гугле в пункте "Разрешенные URI перенаправления" я указал https://site.ru/user/foo
в эту штуку authIdentity->redirectUrl = user/foo.
Запускаю, в ответ получаю Error: redirect_uri_mismatch
в Request Details

Код: Выделить всё

client_id=696517339763-8e32m7cmvds4skscq5bfcjhcnhlnj9o.apps.googleusercontent.com
redirect_uri=http://site.ru/user/test?service=google_oauth
scope=https://www.googleapis.com/auth/userinfo.profile
response_type=code
То есть с ответом он будет долбиться в user/test ?
Подскажите, правильно ли я все понимаю. и как поправить?

mikadi
Сообщения: 25
Зарегистрирован: 2016.05.06, 10:16

Re: Посоветуйте плагин авторизации через соцсети

Сообщение mikadi » 2017.04.21, 14:41

При том http://site.ru/ у меня c https но в ответе почему-то http

Аватара пользователя
SiZE
Сообщения: 2435
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Посоветуйте плагин авторизации через соцсети

Сообщение SiZE » 2017.04.21, 14:42

Код: Выделить всё

$authIdentity->redirectUrl = Yii::app()->user->returnUrl;
На гитхабе в примере ниже вызывается $eauth->redirect(); или $eauth->cancel();, в них используется установленный URL .

А гуглу передается redirect_uri, который получается или из GET https://github.com/Nodge/yii-eauth/blob ... e.php#L105 или если в гет ничего нет, из текущего URL. Я уже давно это настраивал, если правильно помню это работает так. Есть url с авторизацией /site/login например. Пользователь, с какой-то другой страницы нажимает "авторизоваться через гугл". Открывается попап со страницей /site/login, скрипт получает эту страницу в качестве redirect_uri и передает гуглу, гугл проверяет данные и возвращает на эту страницу токен. И дальше происходит редирект сюда $eauth->redirect(); или сюда $eauth->cancel();

mikadi
Сообщения: 25
Зарегистрирован: 2016.05.06, 10:16

Re: Посоветуйте плагин авторизации через соцсети

Сообщение mikadi » 2017.04.21, 14:48

Да, вроде бы тогда вариант с ожиданием ответа на user/test, должен отработать, и в гугле я поменял именно на этот путь, но гугл видимо не может к нему простучаться, хотя метод доступен из браузера

mikadi
Сообщения: 25
Зарегистрирован: 2016.05.06, 10:16

Re: Посоветуйте плагин авторизации через соцсети

Сообщение mikadi » 2017.04.21, 17:18

а можно как-то сделать что бы redirect_uri=http://site.ru/user/test?service=google_oauth отправлялся с https ?

Аватара пользователя
SiZE
Сообщения: 2435
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Посоветуйте плагин авторизации через соцсети

Сообщение SiZE » 2017.04.22, 20:39

Ну метод проверяет этот параметр в _GET прежде чем сгенерировать самому, так что добавь его просто при вызове попапа с авторизацией.

Но я лично просто перекидываю на https сразу после авторизации уже в коде. Хотя наверное лучше это делать до )

mikadi
Сообщения: 25
Зарегистрирован: 2016.05.06, 10:16

Re: Посоветуйте плагин авторизации через соцсети

Сообщение mikadi » 2017.04.25, 13:20

А удалось ли с помощью этого плагина получить email пользователя из гугла? В описании я прочитал что для получения доп.инфы, а email видимо это дополнительная информация, нужно переопределить базовый класс.
To receive all the necessary data to your application, you can override the base class of any provider. Base classes are stored in protected/extensions/eauth/services/. Examples of extended classes can be found in protected/extensions/eauth/custom_services/.
Вы что-нибудь переопределяли? Я не очень понял у чего переопределять базовый класс

Аватара пользователя
SiZE
Сообщения: 2435
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Посоветуйте плагин авторизации через соцсети

Сообщение SiZE » 2017.04.25, 14:06

mikadi писал(а):
2017.04.25, 13:20
А удалось ли с помощью этого плагина получить email пользователя из гугла?
Вы что-нибудь переопределяли? Я не очень понял у чего переопределять базовый класс
Не все отдают почту. Гуглом я не пользовался. Переопределял через конфиг только то что в папке custom_services, создал по образу и подобию.

Ответить