参考
环境
软件/系统 | 版本 | 说明 |
---|---|---|
windows | 10 | |
php | 8.1.9-Win32-vs16-x64 | |
composer | 2.5.5 | |
laravel | 10.8.0 | |
mysql | 8.0.28 |
注意
如果需要使用密码功能,还需要在 config\auth.php
配置 passwords
数组,在自定义的如管理员表中还需要添加 remember_token
字段(记住我功能)。
备注
上一篇文章介绍了如何使用 Laravel 的 AuthLaravel10 API 简单使用 Auth 生成 Token 与登录并获取用户信息,本文在原文配置的基础上进行学习 Auth 的多用户登录的使用。
前置工作
其中 1-4 步骤是 《 Laravel10 API 简单使用 Auth 生成 Token 与登录并获取用户信息 》一文中已有步骤,为了文章整体流畅复制过来的
https://learnku.com/docs/laravel/10.x/sanctummd/14914#installation
- 安装
composer require laravel/sanctum
- 发布配置与迁移文件
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
- 将 Sanctum 的中间件添加到你的应用程序的 app/Http/Kernel.php 文件中的 api 中间件组中
'api' => [ \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,// 这一行 \Illuminate\Routing\Middleware\ThrottleRequests::class.':api', \Illuminate\Routing\Middleware\SubstituteBindings::class, ],
- 数据库迁移
php artisan migrate
(需要数据库链接) - 修改
config\auth.php
文件如下
## 38行
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
// 新增一个 admin guard,其中 admin_web 名称可以任意自定义,driver 代表储存方式,provider 表示对应处理验证程序
'admin_web' => [
'driver' => 'session',
'provider' => 'admins',
],
],
# ...
## 约67行左右
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
// 管理员
'admins' => [
'driver' => 'eloquent',
'model' => App\Models\Admin::class,
]
],
代码
/**
* 测试
*/
Route::get('{admin}',function(Admin $admin,Request $request){
## 登录当前用户
Auth::guard('admin_web')->login($admin);
## 获取当前登录用户的信息
dump(Auth::guard('platform_admin_web')->user());
dump(Auth::guard('platform_admin_web')->user()->createToken("USER_TOKEN"));
});
//