0 javascript php facebook laravel
我已经使用 laravel 通过 facebook 实现了授权。当我访问该网站时,通过 Facebook 单击授权按钮,然后会重定向到该页面,并显示错误“抱歉,出了点问题。我们正在努力尽快修复此问题”。 Enter image description here 已经花掉几乎所有的钱了,并没有找到解决这个问题的办法。
我通过 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 驱动程序就可以工作。
希望这对某人有帮助。
| 归档时间: |
|
| 查看次数: |
901 次 |
| 最近记录: |