使用Socialite通过Facebook进行身份验证时出现以下错误.使用Laravel 5.2,这是我第一次尝试实现Socialite.有任何想法吗 ?
FatalErrorException in AbstractProvider.php line 134: Call to a member function set() on a non-object
路线: -
Route::get('/login', 'AuthController@login');
AuthController.php: -
redirect(); } }
services.php设置如下.env文件中的详细信息: -
'facebook' => [ 'client_id' => env('FACEBOOK_CLIENT_ID'), 'client_secret' => env('FACEBOOK_CLIENT_SECRET'), 'redirect' => env('FACEBOOK_REDIRECT'), ],
这里报告了同样的错误但没有回复: - https://laracasts.com/discuss/channels/laravel/laravel-socialite-session-errors-in-52/replies/125233
有同样的问题......
在这里找到答案:在routes.php中,您是否在Web中间件组中定义了路由?这似乎是5.2升级的常见问题:)
您似乎必须将路由放在MiddleWare中,因为它包含AbstractProvider.php中需要的会话创建134
$this->request->getSession()->set('state', $state = Str::random(40));
这就是我的代码routes.php现在的样子(并且有效):
['web']], function () { // Route::get('auth/google', 'Auth\AuthController@redirectToProvider'); Route::get('auth/google/callback', 'Auth\AuthController@handleProviderCallback'); });