Intereting Posts
найти файлы, измененные между двумя датами, используя php Проблемы с каталогом PHP Ошибка скручивания при загрузке файла «не удалось создать данные форматирования» Почему unserialize_callback_func требуется, когда spl_autoload_register уже используется? Как отправить sms с использованием php-скрипта с ftp-сервера codeigniter отправить PDF-файл в виде вложения электронной почты Доступ к многомерному массиву с точечной нотацией php regex или | оператор WordPress добавляет разбиение на страницы для настраиваемого цикла, который показывает подстраницы Определяет ли порядок определения класса в PHP? Справка по импорту csv PHP – Десятичные значения становятся округленными значениями при вставке в таблицу Расширенные пользовательские поля – WordPress Оптимальный дизайн для базы данных с повторяющимся событием PHP, ключи слияния в многомерном массиве Более сжатый способ проверить, содержит ли массив только числа (целые числа)

yii2, google outh2 и область действия

Я использую расширение Yii2, GoogleOAuth и yii2. Я хочу получить пользовательские круги Google и задать область для моей конфигурации:

'authClientCollection' => [ 'class' => 'yii\authclient\Collection', 'clients' => [ 'google' => [ 'class' => 'yii\authclient\clients\GoogleOAuth', 'clientId' => '758709912345-p4qp4lqihit5un1u6qb75msqp5m5j6d8.apps.googleusercontent.com', 'clientSecret' => 'ZygOIi1-0asfktUQ1pKOFOo', 'scope' => 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/drive', ], ], ] 

Когда я вхожу в систему с Google OAuth2, у меня была ошибка:

Exception – yii \ authclient \ InvalidResponseException Ошибка запроса с кодом: 400, сообщение: {"error": "redirect_uri_mismatch"}

Ответ Google:

 [ 'url' => 'https://accounts.google.com/o/oauth2/token' 'content_type' => 'application/json' 'http_code' => 400 'header_size' => 435 'request_size' => 644 'filetime' => -1 'ssl_verify_result' => 0 'redirect_count' => 0 'total_time' => 0.115431 'namelookup_time' => 0.001186 'connect_time' => 0.025188 'pretransfer_time' => 0.076275 'size_upload' => 456 'size_download' => 39 'speed_download' => 337 'speed_upload' => 3950 'download_content_length' => -1 'upload_content_length' => 456 'starttransfer_time' => 0.114206 'redirect_time' => 0 'certinfo' => [] 'primary_ip' => '2a00:1450:4010:c08::54' 'primary_port' => 443 'local_ip' => '2a03:6f00:1::5c35:726b' 'local_port' => 33160 'redirect_url' => '' 

]

Когда я удалил из области Google+ ( https://www.googleapis.com/auth/plus.login ) авторизацию, вы получите ошибку и ответ Google:

 [ 'url' => 'https://accounts.google.com/o/oauth2/token' 'content_type' => 'application/json; charset=utf-8' 'http_code' => 200 'header_size' => 522 'request_size' => 526 'filetime' => -1 'ssl_verify_result' => 0 'redirect_count' => 0 'total_time' => 0.13719 'namelookup_time' => 0.001212 'connect_time' => 0.026261 'pretransfer_time' => 0.079765 'size_upload' => 338 'size_download' => 900 'speed_download' => 6560 'speed_upload' => 2463 'download_content_length' => -1 'upload_content_length' => 338 'starttransfer_time' => 0.136241 'redirect_time' => 0 'certinfo' => [] 'primary_ip' => '2a00:1450:4010:c08::54' 'primary_port' => 443 'local_ip' => '2a03:6f00:1::5c35:726b' 'local_port' => 37583 'redirect_url' => '' 

]

Проблема только в https: //www.googleapis.com/auth/plus.login. Включенные API: http://minus.com/lJ5nw7caXJApD

    Вы также можете добавить returnUrl явно в конфигурацию вашего клиента. Посмотрите на документы для получения дополнительной информации.

    Я также столкнулся с этой проблемой и получил решение об изменении URI перенаправления в учетных данных проекта, как показано ниже:

    Перенаправление URI

      http://mysiteurl.com/user/sign-in/oauth?authclient=google http://mysiteurl.com/oauth2callback 

    Происхождение JavaScript

      http://mysiteurl.com 
     Use return URL in main.php like 'authClientCollection' => [ 'class' => 'yii\authclient\Collection', 'clients' => [ 'facebook' => [ 'class' => 'yii\authclient\clients\Facebook', 'authUrl' => 'https://www.facebook.com/dialog/oauth?display=popup', 'clientId' => ['FacebookClientId'], 'clientSecret' => ['FacebookClientSecret'], 'attributeNames' => ['name','first_name','last_name','email','gender','picture','age_range'] ], 'google' => [ 'class' => 'yii\authclient\clients\Google', 'clientId' => ['GoogleClientId'], 'clientSecret' => ['GoogleClientSecret'], 'returnUrl' => 'http://yoursite.com/site/auth?authclient=google' ], ], ], Also set redirect_url in api credentials same as return url It's work for me.