Страница 1 из 1

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

Добавлено: 2017.04.18, 15:26
mikadi
Нужно реализовать авторизацию через соцсети, перед тем как начать велосипедить, решил спросить может есть нормальное готовое решение?

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

Добавлено: 2017.04.18, 15:52
SiZE

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

Добавлено: 2017.04.21, 13:24
mikadi
Спасибо большое, только у меня вопрос поэтому плагину. А конкретно по этой части. Я пытаюсь сделать авторизацию через 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 ?
Подскажите, правильно ли я все понимаю. и как поправить?

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

Добавлено: 2017.04.21, 14:41
mikadi
При том http://site.ru/ у меня c https но в ответе почему-то http

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

Добавлено: 2017.04.21, 14:42
SiZE

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

$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();

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

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

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

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

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

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

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

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

Добавлено: 2017.04.25, 13:20
mikadi
А удалось ли с помощью этого плагина получить 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/.
Вы что-нибудь переопределяли? Я не очень понял у чего переопределять базовый класс

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

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