Laravel Socialite:缺少必需参数:redirect_uri

Vol*_*il3 6 php laravel-5 laravel-socialite

我正在使用Laravel 5.3和Socialite.

我收到400错误请求错误消息:

Missing required parameter: redirect_uri
Run Code Online (Sandbox Code Playgroud)

它生成的URL是:

https://accounts.google.com/o/oauth2/auth?scope=openid+profile+email&response_type=code&state=RYPmT1B93CaUdi44Z7iwfmRPx3hIy7an7yxAVY9l
Run Code Online (Sandbox Code Playgroud)

详情如下:

service.php

'google' => [
        'client_id' => '1234455-u3ifk8tr1qs41487fmevg2h2s1v6ubue.apps.googleusercontent.com',
        'client_secret' => 'DxSOS0p1xKNuPger3IS_E4-i',
        'redirect' => 'http://localhost:8000/google/callback',
    ],
Run Code Online (Sandbox Code Playgroud)

路线

Route::get('/{provider}/redirect', 'Auth\RegisterController@redirectToProvider');
Route::get('/{provider}/callback', 'Auth\RegisterController@handleProviderCallback');
Run Code Online (Sandbox Code Playgroud)

Google控制台中的授权URI设置

http://localhost:8000/google/callback
Run Code Online (Sandbox Code Playgroud)

调节器

public function handleProviderCallback($provider)
    {
        try {
            $social_user = Socialite::driver($provider)->user();

        } catch (Exception $e) {
            return redirect('/');
        }
}
Run Code Online (Sandbox Code Playgroud)

小智 1

只需在 google 控制台中仔细检查你的 service.php 文件、env 文件和 api 设置

示例(重定向中没有 env):

'google' => [
        'client_id' => env('GOOGLE_CLIENT_ID'),
        'client_secret' => env('GOOGLE_CLIENT_SECRET'),
        'redirect' => 'http://localhost:8000/api/login/google/callback'
],
Run Code Online (Sandbox Code Playgroud)