Наличие приложения vue2 с проектом, настроенным на консоли Google для использования oauth2. На стороне клиента я легко получаю код авторизации (используя этот https://github.com/guruahn/vue-google-oauth2)
const gauthOption = {
clientId: 'XXXXXX.apps.googleusercontent.com',
scope: 'https://www.googleapis.com/auth/youtube.upload',
prompt: 'select_account',
access_type : 'offline',
}
Vue.use(GAuth, gauthOption)
Теперь я передаю код авторизации контроллеру laravel, чтобы получить конец токена refre sh.
public function ytTokens(Request $request){
$endpoint = "https://oauth2.googleapis.com/token";
$client = new \GuzzleHttp\Client();
$redirect_uri = 'postmessage';
$grant_type = 'authorization_code';
$code = $request->code;
try {
$response = $client->request('POST', $endpoint, [
'form_params'=> [
'redirect_uri' => $redirect_uri,
'grant_type' => $grant_type,
'code' => $code,
'client_id' => 'XXXXXX.apps.googleusercontent.com',
'client_secret' => 'YYYYYYY'
]
]);
} catch(Exception $e) {
return $e;
}
return response()->json($response);
}
При использовании одинаковых идентификаторов Google на клиенте и сервере
пробовал redirect_uri с реальным URL сервера, зарегистрированным в консоли, он всегда возвращает несоответствие uri, даже после создание новых идентификаторов консоли gg, ожидание ...
Таким образом, вызов API, выполненный с redirect_uri со строкой 'postmessage' в нем, как указано в документации, не возвращает ошибку, но пустой объект json: {}