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

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

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

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

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


mikadi
Сообщения: 21
Зарегистрирован: 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
Сообщения: 21
Зарегистрирован: 2016.05.06, 10:16

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

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

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

Аватара пользователя
SiZE
Сообщения: 2305
Зарегистрирован: 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
Сообщения: 21
Зарегистрирован: 2016.05.06, 10:16

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

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

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

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

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

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

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

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

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

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

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

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

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя