使用Laravel Socialite登录Facebook

然而,我是Laravel的新手,我正在遵循http://www.codeanchor.net/blog/complete-laravel-socialite-tutorial/上的教程,通过Facebook将用户登录到我的应用程序中。 但是,几乎在任何地方,我都会使用Github或Twitter为Laravel中的Socialite插件找到一个教程。

我的问题是,在学习本教程中的所有内容时,单击“登录到Facebook”按钮时,它会抛出一个“无效参数异常”,并且没有指定Socialite驱动程序。“

另一个堆栈溢出问题似乎缩小了一些东西:https://stackoverflow.com/questions/29673898/laravel-socialite-invalidargumentexception-in-socialitemanager-php-line-138-n

说明问题出在config / services.php中

现在,我有app_id和app_secret。 但是,重定向链接似乎令人困惑,因为我无法在Facebook上找到它。 我知道这是我的应用程序应该去Facebook登录的地方,但是,不确定它应该是什么。

有没有人对此有任何想法。


在你的composer.json中添加"laravel/socialite": "~2.0",

"require": {
        "laravel/framework": "5.0.*",
        "laravel/socialite": "~2.0",

运行composer update

config / services.php中添加:

//Socialite
    'facebook' => [
        'client_id'     => '1234567890444',
        'client_secret' => '1aa2af333336fffvvvffffvff',
        'redirect'      => 'http://laravel.dev/login/callback/facebook',
    ],

你需要创建两条路线,我的是这样的:

//Social Login
Route::get('/login/{provider?}',[
    'uses' => 'AuthController@getSocialAuth',
    'as'   => 'auth.getSocialAuth'
]);


Route::get('/login/callback/{provider?}',[
    'uses' => 'AuthController@getSocialAuthCallback',
    'as'   => 'auth.getSocialAuthCallback'
]);

您还需要为上面的路由创建控制器,如下所示:

<?php namespace AppHttpControllers;

 use LaravelSocialiteContractsFactory as Socialite;

 class AuthController extends Controller
 {

       public function __construct(Socialite $socialite){
           $this->socialite = $socialite;
       }


       public function getSocialAuth($provider=null)
       {
           if(!config("services.$provider")) abort('404'); //just to handle providers that doesn't exist

           return $this->socialite->with($provider)->redirect();
       }


       public function getSocialAuthCallback($provider=null)
       {
          if($user = $this->socialite->with($provider)->user()){
             dd($user);
          }else{
             return 'something went wrong';
          }
       }

 }

并最终将网站网址添加到您的Facebook应用中,如下所示:

在这里输入图像描述


在你的config / services.php文件下创建一个提供者

'facebook' => [
    'client_id' => 'your-fb-client-id',
    'client_secret' => 'your-fb-secret',
    'redirect' => 'http://your-redirect.com/route',
],

现在您可以使用以下代码创建控制器

//this function will redirect users to facebook login page
public function facebook()
{
    return Socialize::with('facebook')->redirect();
}

public function callback()
{
    $user = Socialize::with('facebook')->user();

    //now we have user details in the $user array
     dd($user);

}

这是你的路线

Route::get('facebook', 'LoginController@facebook');

Route::get('callback', 'LoginController@callback');
链接地址: http://www.djcxy.com/p/33109.html

上一篇: Using Laravel Socialite to login to facebook

下一篇: New Redirect After Login