Laravel 自定义guard 登录Auth认证

刘博文
2023-12-01

第一步:配置方面
在config下的auth.php配置guards 和 providers

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        
        'cloud' => [
            'driver' => 'session',
            'provider' => 'member_cloud',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
            'hash' => false,
        ],
    ],

 'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
        'member_cloud' => [
            'driver' => 'eloquent',
            'model' => App\Membercloud::class,
        ],
        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],

第二步:数据库方面
1 新建自定义用户表 ,其中remember_token 用于是否记住用户

2 在app目录下新建Membercloud.php 文件对应,文件名称取决于配置文件中的名称 复制User.php修改

第三步:控制器中的使用

Auth::guard('cloud')->attempt(['phone'=>$account,'password'=>$pass,'memberType'=>$memberType]);//验证登录

$auth=  Auth::guard("tcloud")->check();  //验证是否登陆

Auth::guard('tcloud')->logout();//退出当前登录

指定用户为认证信息

$user= Membercloud::query()->where(['user'=>$user,'memberType'=>$memberType])->first();
 Auth::guard('tcloud')->login($user);

$user  =  Auth::guard('tcloud')->user();//获取用户信息

$user =  json_decode( json_encode( $user),true);

Hash::make($password); //验证码密码

 类似资料: