I am using Yii2, GoogleOAuth and yii2-user extension. I want to receive user google circles and set scope to my config:
'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',
],
],
]
When I login with Google OAuth2 I had error:
Exception – yii\authclient\InvalidResponseException Request failed with code: 400, message: { "error" : "redirect_uri_mismatch" }
Google response:
[
'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' => ''
]
When I removed from the configuration Google+ scope(https://www.googleapis.com/auth/plus.login) authorization go with out error and Google response is:
[
'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' => ''
]
Problem only in https: //www.googleapis.com/auth/plus.login . My enabled APIs: http://minus.com/lJ5nw7caXJApD
https://www.googleapis.com/auth/userinfo.email
is deprecated. you should useemail
instead. see docs – TahirREDIRECT URIS
that you need to set in your app credentials in google console, right? it should be the url to yourauth
action. – Tahirredirect_uri
in url which I don't see. Normally it should be included automatically. Try to set 'returnUrl' property in your auth client configuration explicitly. see docs for more info. – Tahir