在 Laravel 5.4 中检索 Facebook 用户访问令牌,您需要遵循以下步骤:
composer require laravel/socialite
config/services.php
:
在 config/services.php
文件中添加 Facebook 的配置信息:'facebook' => [
'client_id' => env('FACEBOOK_CLIENT_ID'),
'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
'redirect' => env('FACEBOOK_REDIRECT_URL'),
],
确保您已经在 .env
文件中设置了相应的环境变量。
FacebookController.php
的新控制器:php artisan make:controller FacebookController
FacebookController.php
中添加登录逻辑:<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Laravel\Socialite\Facades\Socialite;
class FacebookController extends Controller
{
public function redirectToFacebook()
{
return Socialite::driver('facebook')->redirect();
}
public function handleFacebookCallback()
{
$user = Socialite::driver('facebook')->user();
// 在此处处理用户登录逻辑,例如创建或更新用户,并生成 JWT 令牌
// 假设您已经成功登录并创建/更新了用户,以下是如何生成 JWT 令牌的示例
$token = auth()->login($user);
return response()->json(compact('token'));
}
}
routes/web.php
中添加路由:Route::get('login/facebook', 'FacebookController@redirectToFacebook');
Route::get('login/facebook/callback', 'FacebookController@handleFacebookCallback');
注意:这里的示例使用了 Laravel Socialite 和 JWT-Auth 库。如果您还没有安装 JWT-Auth,请运行以下命令来安装它:
composer require tymon/jwt-auth
并在 config/auth.php
中配置 JWT-Auth:
'guards' => [
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
],
领取专属 10元无门槛券
手把手带您无忧上云