Посоветуйте плагин авторизации через соцсети
Посоветуйте плагин авторизации через соцсети
Нужно реализовать авторизацию через соцсети, перед тем как начать велосипедить, решил спросить может есть нормальное готовое решение?
Re: Посоветуйте плагин авторизации через соцсети
Спасибо большое, только у меня вопрос поэтому плагину. А конкретно по этой части. Я пытаюсь сделать авторизацию через google.
вот эта штука authIdentity->redirectUrl как я понимаю это путь в случае успешной авторизации.
я сделал метод foo в том же контроллере.
В гугле в пункте "Разрешенные URI перенаправления" я указал https://site.ru/user/foo
в эту штуку authIdentity->redirectUrl = user/foo.
Запускаю, в ответ получаю Error: redirect_uri_mismatch
в Request Details
То есть с ответом он будет долбиться в user/test ?
Подскажите, правильно ли я все понимаю. и как поправить?
Код: Выделить всё
$authIdentity = Yii::app()->eauth->getIdentity($service);
$authIdentity->redirectUrl = Yii::app()->user->returnUrl;
$authIdentity->cancelUrl = $this->createAbsoluteUrl('/');
я сделал метод 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
Подскажите, правильно ли я все понимаю. и как поправить?
Re: Посоветуйте плагин авторизации через соцсети
При том http://site.ru/ у меня c https но в ответе почему-то http
Re: Посоветуйте плагин авторизации через соцсети
Код: Выделить всё
$authIdentity->redirectUrl = Yii::app()->user->returnUrl;
А гуглу передается 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: Посоветуйте плагин авторизации через соцсети
Да, вроде бы тогда вариант с ожиданием ответа на user/test, должен отработать, и в гугле я поменял именно на этот путь, но гугл видимо не может к нему простучаться, хотя метод доступен из браузера
Re: Посоветуйте плагин авторизации через соцсети
а можно как-то сделать что бы redirect_uri=http://site.ru/user/test?service=google_oauth отправлялся с https ?
Re: Посоветуйте плагин авторизации через соцсети
Ну метод проверяет этот параметр в _GET прежде чем сгенерировать самому, так что добавь его просто при вызове попапа с авторизацией.
Но я лично просто перекидываю на https сразу после авторизации уже в коде. Хотя наверное лучше это делать до )
Но я лично просто перекидываю на https сразу после авторизации уже в коде. Хотя наверное лучше это делать до )
Re: Посоветуйте плагин авторизации через соцсети
А удалось ли с помощью этого плагина получить 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: Посоветуйте плагин авторизации через соцсети
Не все отдают почту. Гуглом я не пользовался. Переопределял через конфиг только то что в папке custom_services, создал по образу и подобию.