首页 > 其他分享 >Laravel10 Auth 多用户(管理员、用户的区分)

Laravel10 Auth 多用户(管理员、用户的区分)

时间:2023-05-09 09:56:02浏览次数:48  
标签:web 多用户 admin driver Auth Laravel10 php class

参考

环境

软件/系统 版本 说明
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

  1. 安装 composer require laravel/sanctum
  2. 发布配置与迁移文件 php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
  3. 将 Sanctum 的中间件添加到你的应用程序的 app/Http/Kernel.php 文件中的 api 中间件组中
    'api' => [
    \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,// 这一行
       \Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
       \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],
    
  4. 数据库迁移 php artisan migrate (需要数据库链接)
  5. 修改 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"));
});
// 

标签:web,多用户,admin,driver,Auth,Laravel10,php,class
From: https://www.cnblogs.com/xiaqiuchu/p/17384001.html

相关文章

  • Keycloak: Authorization Code Grant Example
    Keycloak:AuthorizationCodeGrantExamplehttps://www.appsdeveloperblog.com/keycloak-authorization-code-grant-example/ 适合web应用 Inthistutorial,youwilllearnhowtogetanaccesstokenfromtheKeycloakauthorizationserverusingtheOAuthAuthor......
  • Django之auth认证模块
    目录前戏:auth模块的使用auth之用户注册auth模块之登录request.user方法介绍request.user.is_authenticatedauth模块之网页首页auth模块之用户登录过直接跳转页面auth模块之用户修改密码auth模块之注销用户auth模块之扩展表前戏:django自带一个admin路由但是需要我们提供管理员......
  • 8-1 OAuth2的主要角色和流程
         ......
  • idea微服务续_OAuth2
    一、OAuth2微服务权限校验Session先导入依赖 三个服务都导入<!--SpringSessionRedis支持--><dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-data-redis</artifactId>......
  • 腾讯、新浪微博 oauth安全认证
    在做一个需要调用微博接口的项目中.发现了一些问题1.腾讯微博sdk的封装粒度不够,需要在其上做二次开发2.新浪,腾讯微博没有实现统一的接口,在做项目的时候需要将它们分开来实现,代码看起来很别扭我所做的就是解决了以上两个问题,所以现在做微博应用......
  • auth模块
    目录一、auth认证模块二、auth认证相关模块及操作功能及方法介绍部分功能操作代码展示三、扩展auth_user表一、auth认证模块前戏:在刚学习django的时候我们发现django自带一个admin路由,但是需要我们提供管理员账号和密码,接下去学习的过程中,我们又发现数据库迁移后创建了十多张......
  • OAuth2.0 第三方登录
    本篇内容以用户访问百度,通过新浪微博的第三方登录百度过程讲解用户:资源拥有者百度:客户端新浪微博:认证服务器前置条件:百度已经向新浪微博申请注册,分配给百度的client_id是2512457640地址流程图如下1.用户(资源拥有者)访问百度(客户端)2.点击新浪微博(认证服务器)登录,浏览......
  • 4-2 UserDetails、UserDetailsService和jdbcAuthentication
          ......
  • navicate:2059 Authentication plugin caching_sha2_password
    场景:navicate连接远程数据库失败,报:2059Authenticationplugincaching_sha2_password解决:showvariableslike'default_authentication_plugin';然后看全部用户的密码模式selecthost,user,pluginfrommysql.user;之前全部是caching_sha2_password这个是修改过的......
  • LoginAuthorizationFilter
    usingMicrosoft.AspNetCore.Mvc.Filters;usingPT.Common;usingPT.Model;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Threading.Tasks;namespacePT.Web.Mvc.App_Start{///<summary>///登录授权过滤///<......