Laravel 8 路由
接下来,就要对用户认证了!这需要两个路由:一个路由用于把用户重定向到 OAuth provider,另一个则用于在认证完成后接收相应 provider 的回调请求。可以通过 Socialite
facade 的方式来访问 Socialite:
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Laravel\Socialite\Facades\Socialite;
class LoginController extends Controller
{
/**
* 将用户重定向到 GitHub 的授权页面
*
* @return \Illuminate\Http\Response
*/
public function redirectToProvider()
{
return Socialite::driver('github')->redirect();
}
/**
* 从 GitHub 获取用户信息
*
* @return \Illuminate\Http\Response
*/
public function handleProviderCallback()
{
$user = Socialite::driver('github')->user();
// $user->token;
}
}
redirect
方法负责将用户发送到 OAuth provider,而 user
方法将读取传入请求并从 provider 中检索用户信息。
当然,还需要在你的控制器方法中定义好路由规则:
use App\Http\Controllers\Auth\LoginController;
Route::get('login/github', [LoginController::class, 'redirectToProvider']);
Route::get('login/github/callback', [LoginController::class, 'handleProviderCallback']);