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
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号