错误“抱歉,出了点问题。” 登录 facebook laravel 时

0 javascript php facebook laravel

我已经使用 laravel 通过 facebook 实现了授权。当我访问该网站时,通过 Facebook 单击授权按钮,然后会重定向到该页面,并显示错误“抱歉,出了点问题。我们正在努力尽快修复此问题”。 Enter image description here 已经花掉几乎所有的钱了,并没有找到解决这个问题的办法。

错误所在的URL https://www.facebook.com/v3.3/dialog/oauth?client_id=2040703196275670&redirect_uri=https%3A%2F%2Fgrowexspeak.space%2Ffacebook%2Fcallback&scope=email&response_type=code

我通过 Laravel 上的 facebook 留下了授权码。

FacebookController.php

<?php

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Laravel\Socialite\Facades\Socialite;

class FaceBookController extends Controller
{
    public function loginUsingFacebook()
    {
       $facebook_user = Socialite::driver('facebook')->stateless()->redirect();

       return $facebook_user;
    }
     public function callbackFromFacebook()
     {
      try {
           $user = Socialite::driver('facebook')->stateless()->user();

           $saveUser = User::updateOrCreate([
               'facebook_id' => $user->getId(),
           ],[
               'name' => $user->getName(),
               'email' => $user->getEmail(),
               'password' => Hash::make($user->getName().'@'.$user->getId())
                ]);

           Auth::loginUsingId($saveUser->id);

           return redirect()->route('home');
           } catch (\Throwable $th) {
              throw $th;
           }
       }

}
Run Code Online (Sandbox Code Playgroud)

配置/服务.php

facebook' => [
        'client_id' => '####', //USE FROM FACEBOOK DEVELOPER ACCOUNT
        'client_secret' => '####', //USE FROM FACEBOOK DEVELOPER ACCOUNT
        'redirect' => 'https://growexspeak.space/facebook/callback'
    ],
Run Code Online (Sandbox Code Playgroud)

网页.php


Route::prefix('facebook')->name('facebook.')->group( function(){
    Route::get('auth', [FaceBookController::class, 'loginUsingFacebook'])->name('login');
    Route::get('callback', [FaceBookController::class, 'callbackFromFacebook'])->name('callback');
});
Run Code Online (Sandbox Code Playgroud)

应用程序.php

'providers' => [
        Laravel\Socialite\SocialiteServiceProvider::class,

        
    ],

    /*
    |--------------------------------------------------------------------------
    | Class Aliases
    |--------------------------------------------------------------------------
    |
    | This array of class aliases will be registered when this application
    | is started. However, feel free to register as many as you wish as
    | the aliases are "lazy" loaded so they don't hinder performance.
    |
    */

    'aliases' => Facade::defaultAliases()->merge([
        // 'ExampleClass' => App\Example\ExampleClass::class,
        'Socialite' => Laravel\Socialite\Facades\Socialite::class,

    ])->toArray(),
Run Code Online (Sandbox Code Playgroud)

auth.blade.php


 <a href="{{ route('facebook.login') }}" class="btn btn-facebook btn-user btn-block">
   <i class="fab fa-facebook-f fa-fw"></i>
   Login with Facebook
</a>
Run Code Online (Sandbox Code Playgroud)

直到我知道解决方案

小智 5

我昨晚花了很多时间试图解决这个问题,问题出在 Facebook 应用程序设置中,因为我没有启用“电子邮件”用例权限。

要检查这一点,请转到https://developers.facebook.com/apps/your-app-id/use_cases/并单击“身份验证和帐户创建”>“编辑”按钮

屏幕截图:用例

如果“电子邮件”权限旁边有一个“添加”按钮,请单击它,这样 Facebook Socialite 驱动程序就可以工作。

屏幕截图:添加电子邮件权限

希望这对某人有帮助。