Laravel 8: Google 授权错误 400

Laravel 8: Google Authorization Error 400

我正在使用 Laravel 8 开发我的项目,我想使用 Google 身份验证系统让我的用户登录。

所以我通过 composer require laravel/socialite 命令下载了软件包,并在 .env:

添加了我的信息
GOOGLE_CLIENT_ID=example
GOOGLE_SECRET_KEY=example
GOOGLE_CALLBACK_URL=http://localhost:8000/auth/google/callback

然后我在 config/services.php 上定义了它们:

'google' => [
        'client_id' => env('GOOGLE_CLIENT_ID'),
        'client_secret' => env('GOOGLE_SECRET_KEY'),
        'redirect' => 'GOOGLE_CALLBACK_URL',
],

之后,我在我的 auth/ 目录中创建了一个名为 GoogleAuthController 的控制器,如下所示:

use Laravel\Socialite\Facades\Socialite;

class GoogleAuthController extends Controller
{
    public function redirect()
    {
        return Socialite::driver('google')->redirect();
    }
}

终于在我登录时 blade:

<a href="{{ route('auth.google') }}" class="btn btn-danger">Login with Google</a>

但问题是,每当我测试它时,它都会说:

Error 400: invalid_request

Invalid parameter value for redirect_uri: Missing scheme: GOOGLE_CALLBACK_URL

那么为什么我会收到此错误消息?如何解决?

非常感谢你们的任何想法或建议...

提前致谢。

另外如果你想看看我的路线,这里是:

Route::get('/auth/google', [App\Http\Controllers\Auth\GoogleAuthController::class, 'redirect'])->name('auth.google');

您的配置有误:

'redirect' => 'GOOGLE_CALLBACK_URL',

应该是

'redirect' => env('GOOGLE_CALLBACK_URL'),

当然,这个重定向应该指向 Google,而不是您的本地主机。