Laravel10 Auth 多用户(管理员、用户的区分)
参考
环境
软件/系统 | 版本 | 说明 |
---|---|---|
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
字段(记住我功能)。 - 如果需要将现有用户实例设置为当前经过身份验证的用户,可以将该用户实例传递给 Auth facade 的 login 方法。 给定的用户实例必须是 Illuminate\Contracts\Auth\Authenticatable contract 的实现。 Laravel 中包含的 App\Models\User 模型已经实现了此接口。 https://learnku.com/docs/laravel/9.x/authentication/12239
- Auth::login || Auth::attempt 会自动将用户信息保存到session中
备注
上一篇文章介绍了如何使用 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);
// $request->user("admin_web")
## 获取当前登录用户的信息
dump(Auth::guard('admin_web')->user());
dump(Auth::guard('admin_web')->user()->createToken("USER_TOKEN"));
});
//
博 主 :夏秋初
地 址 :https://www.cnblogs.com/xiaqiuchu/p/17384001.html
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。
地 址 :https://www.cnblogs.com/xiaqiuchu/p/17384001.html
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义