Facebook上的Laravel Socialite未登录

我完全按照文档。

https://github.com/laravel/socialite和https://laravel.com/docs/5.1/authentication#social-authentication

我在Facebook上创建了我的应用程序,并让所有的工作都能正常工 当我点击我的Facebook登录按钮时,它授权应用程序并将我带回我的网站。 但是,它不会显示我已登录。如果我dd()而不是下面的重定向,我会从我的Facebook帐户中获取所有数据。 但只有登录用户才能看到的页面不可见。

这是我的控制器:

public function redirectToProvider()
{
    return Socialite::driver('facebook')->redirect();
}

public function handleProviderCallback()
{
    $user = Socialite::driver('facebook')->user();

    return redirect('my-profile')
            ->with('message', 'You have signed in with Facebook.');
}

这是我的路线:

Route::get('login/facebook', 'AuthAuthController@redirectToProvider');
Route::get('login/facebook/callback', 'AuthAuthController@handleProviderCallback');

Socialite在composer.json中正确安装。 这些类在config / app.php中,我的FB应用程序的ID在config / services.php中。

任何想法,为什么它不工作?


handleProviderCallback方法中,您需要创建并验证驱动程序返回的用户。

创建用户如果不存在:

$userModel = User::firstOrNew(['email' => $user->getEmail()]);
if (!$userModel->id) {
    $userModel->fill([.....]);
    $userModel->save();
}

然后验证用户:

Auth::login($userModel);

你的方法看起来像这样:

public function handleProviderCallback() {
    $user = Socialite::driver('facebook')->user();

    $userModel = User::firstOrNew(['email' => $user->getEmail()]);
    if (!$userModel->id) {
        $userModel->fill([.....]);//Fill the user model with your data
        $userModel->save();
    }

    Auth::login($userModel);

    return redirect('my-profile')
            ->with('message', 'You have signed in with Facebook.');
}
链接地址: http://www.djcxy.com/p/33113.html

上一篇: Laravel Socialite with Facebook not logging in

下一篇: Facebook Socialite login with Laravel 5.1