Laravel——Auth门面的使用

本文介绍了Laravel框架中的Auth门面,包括其在配置文件中的设置,如何在Eloquent模型中使用,以及如何在控制器中引用和实现用户认证、退出登录、路由保护等功能。详细讲解了Auth门面的getAuthUser()方法用于获取认证用户,logout()方法用于退出登录并清除缓存,以及如何通过中间件进行路由保护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

门面位置:

config/auth.php

 

Auth 文件中的三个键(defaults、guards、providers):
 

//指定默认的守门员,如果自定义则无需修改:

'defaults' => [ ],

//指定每个guard的提供者信息和信息存储的驱动方式:

'guards' => [ ],

//定义每个guard实例的验证数据来源,一般为eloquent模型:

'providers' => [ ],

 

编写 Auth 文件:

'guards' => [ 
    'admin' => [ 
        'driver' => 'session', 
        'provider' => 'admin', //与providers里的键对应
     ],
 ],
 
'providers' => [ 
    'admin' => [ 
        'driver' => 'eloquent', 
        'model' => App\Model\Admin\Manager::class, //规定模型类
     ], 
]

 

在 Eloquent 模型中使用:

use Illuminate\Auth\Authenticatable; //引入trait 
class Manager extends Model implements \Illuminate\Contracts\Auth\Authenticatable 
{           
    protected $table = 'manager'; 
    use Authenticatable; //使用trait
 }

引用的文件地址:
 

vendor\laravel\framework\src\Illuminate\Auth\Authenticatable.php 
vendor\laravel\framework\src\Illuminate\Contracts\Auth\Authenticatable.php

引入 Auth 门面:

use Illuminate\Support\Facades\Auth;

 

在控制器中引用:

//返回值为true或false,attemp实现记住我功能
 $result = Auth::guard('admin')->attempt($data,$request->get('online'));

 

获取认证用户:

//在blade视图中引用,username为对应字段
 {{Auth::guard('admin')->user()->username}}

 

退出登陆清除缓存:

Auth::guard('admin')->logout();

 

中间件路由保护:

  中间件底层代码:

//app\Exception\Handler.php 
protected function unauthenticated($request, AuthenticationException $exception){ 
    return $request->expectsJson() ? 
    response()->json(['message' => $exception->getMessage()], 401) : 
    redirect()->guest(route('login')); //默认重定向路由地址
}

  路由文件:

Route::view('login','admin.public.login')->name('login'); 
Route::view('index','admin.index.index')->middleware('auth:admin');

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值