然而,我对Laravel是新手,我正在遵循http://www.codeanchor.net/blog/complete-laravel-socialite-tutorial/教程,通过Facebook将用户登录到我的应用程序中.然而,几乎在任何地方,我都能找到一个使用Github或Twitter的教程,用于Laravel中提供的社交名流插件.

我的问题是,在遵循教程中的所有内容时,当我单击"登录到Facebook"按钮时,它会抛出一个"无效参数异常",没有指定社交名流驱动程序.".

另一个堆栈溢出问题似乎缩小了范围:

说明问题在配置/服务中.php

现在,我有了APP_ID和APP_SECRET.然而,重定向链接似乎令人困惑,因为我在Facebook上也找不到它.我知道这是我的应用程序应该go Facebook登录的地方,但是我不确定它应该是什么.

有没有人知道这件事.

推荐答案

In your composer.json add- "laravel/socialite": "~2.0",

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

run composer update

In config/services.php add:

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

You need to create two routes, mine are like these:

//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 App\Http\Controllers;

 use Laravel\Socialite\Contracts\Factory 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';
          }
       }

 }

and finally add Site URL to your Facebook App like so:

在此处输入图像描述

Laravel相关问答推荐

Livewire 3软件包开发

使用 App::environment() 与 app()->environment() 与 config('app.env') 之间的区别

Laravel Session 总是改变 Laravel 5.4 中的每个刷新/请求

Laravel 路由将变量传递给控制器

Laravel 生产问题 - 使用 Laravel 4.1.x 更新composer

Laravel 5 - 在控制器文件中为多个路由定义中间件

使用 ModelNotFoundException

Laravel 5 - Php artisan语法错误

将 Laravel .env 变量添加到 Vue 组件

Laravel - 批量分配异常错误

升级到 Laravel 5.2 会使所有会话失效

向 Docker 上的 Artisan 推荐方式

Filesystem.php 中的 ErrorException

Laravel 迁移命名约定

防止 Eloquent 查询上的模型水合

无法捕获 Carbon 抛出的异常

如何在 Laravel 中使用补丁请求?

Lumen/Laravel 6:调用未定义的函数 array_except()

Laravel 5 new auth:获取当前用户以及如何实现角色?

函数参数前的三个点代表什么?