1.安装passport插件
composer require laravel/passport
2.执迁迁移文件,生成数据表,保存token数据
php artisan migrate
3.生成客户端授权码
php artisan passport:install
4.在模型层调用HasApiTokens
use Laravel\Passport\HasApiTokens;
5.修改config/auth.php文件中的api配置
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'apiweb' => [
'driver' => 'session',
'provider' => 'apiusers',
],
'api' => [
'driver' => 'passport',
'provider' => 'apiusers',
'hash' => false,
],
],
6.生成并验证
$bool=auth()->guard('apiweb')->attempt($postData);
if($bool){
// 生成token
$userModel = auth()->guard('apiweb')->user();
$token = $userModel->createToken('api')->accessToken;
$data=[
'expire'=>7200,
'token'=>$token
];
return response(['code'=>200,'msg'=>"颁发token成功",'data'=>$data]);
}else{
return response(['code'=>200,'msg'=>"账号或密码错误",'data'=>"11"]);
}
7.添加路由
//颁发token
Route::prefix('auth')->group(function (){
Route::post('login',[\App\Http\Controllers\Login::class,'login'])->name('login');
});
//用户登录
Route::middleware('auth:api')->post("wxlogin",[\App\Http\Controllers\WxLogin::class,'wxlogin']);
8.postman测试