【问题标题】:How to Implement Authentication Guard without Authentication Defaults如何在没有身份验证默认值的情况下实现身份验证防护
【发布时间】:2020-12-08 11:33:43
【问题描述】:

身份验证默认值

'defaults' => [
    'guard' => 'api',
    'passwords' => 'users',
],

身份验证保护

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],        
    'api' => [
        'driver' => 'jwt',
        'provider' => 'users',
        'hash' => false,
    ],
    'student' => [
        'driver' => 'session',
        'provider' => 'students',
    ]

],

用户提供者

 'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,      
    ],

    'students' => [
        'driver' => 'eloquent',
        'model' => App\Student::class,
    ]

    // 'users' => [
    //     'driver' => 'database',
    //     'table' => 'users',
    // ],
],

当我尝试使用 studentusernamepassword 登录时,它不是登录但当我更改 Auth Defaults给学生

 'defaults' => [
    'guard' => 'api',
    'passwords' => 'students',
],

和 api 给学生提供者

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

它使用students表数据登录,但users表数据不允许登录。

如何实现这两个用户表登录??

提前致谢

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您应该将保护名称传递给身份验证函数:

    auth('students')->login();
    

    Auth::guard('students')->login()
    

    或者您通过将默认保护传递给 auth 中间件来覆盖默认保护:

    Route::group(['middleware' => ['auth:students'] ], function(){
           //your routes here
        });
    

    【讨论】:

      猜你喜欢
      • 2017-09-26
      • 2019-02-26
      • 2022-01-03
      • 2013-04-21
      • 1970-01-01
      • 2019-04-27
      • 1970-01-01
      • 2023-01-11
      • 1970-01-01
      相关资源
      最近更新 更多