为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Facebook 登录在 Laravel 中不起作用

使用 Facebook 登录在 Laravel 中不起作用

PHP
蓝山帝景 2022-12-23 16:04:21
我刚刚为用户实现了让他使用 Facebook 登录的代码。在登录视图中,当他点击“使用 Facebook 登录”按钮时,它显示如下错误:查看 [auth.redirect] 未找到顺便说一句,我的主页视图不在根目录中,而是在 auth 文件夹中。我不知道它为什么要寻找视图,因为重定向只是我的控制器中定义的一个函数。路线.php<?phpRoute::group([ 'middleware' => ['web']], function(){      Route::get('/', function () {        return view('auth.home');      })->name('home');//Facebook LoginRoute::get('/redirect', 'SocialAuthFacebookController@redirect');Route::get('/callback', 'SocialAuthFacebookController@callback');});SocialAuthFacebookController.php<?phpclass SocialAuthFacebookController extends Controller{    public function redirect()    {        return Socialite::driver('facebook')->redirect();    } public function callback(SocialFacebookAccountService $service) {     $user = $service->createOrGetUser(Socialite::driver('facebook')->user());     auth()->login($user);     return redirect()->to('/home'); }}
查看完整描述

3 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

完整描述如何登录 facebook 和 laravel:

  1. 安装新的 laravel

  2. 创建数据库并连接

  3. 在用户迁移文件中添加 fb_id

  4. 运行迁移命令

  5. 创建 Laravel 身份验证

  6. 作曲家需要 laravel/社交名流

  7. 打开 config/app.php,在 providers 和 aliases 数组中注册 socialite 插件

 'providers' => [

     .........

     .........

     Laravel\Socialite\SocialiteServiceProvider::class,

 ],

  'aliases' => [

    .........

    .........

   'Socialite' => Laravel\Socialite\Facades\Socialite::class,

],

创建 Facebook 应用程序。然后在 config/services.php 中添加 client_id 和 client_secret,如下所示。


应用创建链接:https ://developers.facebook.com/apps


   return [

         ....

        'facebook' => [

        'client_id' => 'Facebook app id',

        'client_secret' => 'Facebook add secret',

        'redirect' => 'http://localhost:8000/auth/facebook/callback',

       ],

    ]

在 web.php 中创建路由


Route::get('auth/facebook', [SocialController::class, 'facebookRedirect']);

Route::get('auth/facebook/callback', [SocialController::class, 'loginWithFacebook']);

在控制器中


    namespace App\Http\Controllers;

    use Illuminate\Http\Request;    

    use App\Models\User;

    use Validator;

    use Socialite;

    use Auth;



class SocialController extends Controller

 {


  public function facebookRedirect()

  {

      return Socialite::driver('facebook')->redirect();

  }


  public function loginWithFacebook(){

    $user = Socialite::driver('facebook')->stateless()->user();

    $finduser = User::where('fb_id', $user->id)->first();


    if($finduser){

        Auth::login($finduser);

        return redirect('/user-profile');

    }else{

        $newUser = new User();

        $newUser->name      = $user->name;

        $newUser->email     = $user->email;

        $newUser->fb_id     = $user->id;

        $newUser->password  = bcrypt('12345678');

        $newUser->save();

        Auth::login($newUser);

        return redirect('/user-profile');

      }

   }

在登录页面添加facebook登录按钮


 <a class="btn" href="{{ url('auth/facebook') }}">Login with Facebook</a>

启动 php artisan serve 并测试


视频说明: https ://youtu.be/AaFxO2l0N8k


查看完整回答
反对 回复 2022-12-23
?
RISEBY

TA贡献1856条经验 获得超5个赞

您缺少将用户与其社交 ID 链接起来的关键部分。

这是一个很棒的教程:https ://medium.com/@confidenceiyke/laravel-5-8-facebook-socialite-authentication-8863b9a43f11

该教程还将指导您设置 Facebook 应用程序。


查看完整回答
反对 回复 2022-12-23
?
临摹微笑

TA贡献1982条经验 获得超2个赞

我自己弄明白了。我正在使用 Laravel 版本 6。

您只需要进行以下 3 项更改:

改变

FACEBOOK_REDIRECT=http://localhost:8000/callback

FACEBOOK_REDIRECT=http://localhost:8000/facebook/callback

然后改变,

Route::get('/redirect', 'SocialAuthFacebookController@redirect');
Route::get('/callback', 'SocialAuthFacebookController@callback');

Route::get('/facebook/redirect', 'SocialAuthFacebookController@redirect');
Route::get('/facebook/callback', 'SocialAuthFacebookController@callback');

最后在登录视图更改

<a href="{{url('/redirect')}}" class="btn btn-primary">Login with Facebook</a>

<a href="{{url('/facebook/redirect')}}" class="btn btn-primary">Login with Facebook</a>

参考链接:https ://desertebs.com/laravel/laravel-facebook-login-tutorial


查看完整回答
反对 回复 2022-12-23
  • 3 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信