首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel Passport:如何为应用程序中的用户提供程序自定义身份验证保护

Laravel Passport:如何为应用程序中的用户提供程序自定义身份验证保护
EN

Stack Overflow用户
提问于 2022-10-08 00:09:43
回答 1查看 111关注 0票数 0

默认情况下,Laravel创建模型和用户表。问题是,我在数据库中创建和使用表、一个模型和一个名为Citizen的控制器。我对此表示怀疑,当我们配置laravel-passport时,我们必须指定守卫,这是Laravel的例子:

代码语言:javascript
复制
'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],

提供者是什么?考虑到这一项:

代码语言:javascript
复制
        'provider' => 'users',

我应该使用'provider' => 'citizen'而不是'provider' => 'users'吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-08 16:24:23

您可以创建自定义提供程序。这必须在config/auth.php中完成,默认情况下,有一个名为users的提供程序。您可以创建自己的保护程序和提供程序,如下所示:

警卫:

代码语言:javascript
复制
    'guards' => [
    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
    'citizens' => [
        'driver' => 'passport',
        'provider' => 'citizens',
    ],
],

在提供者一节中:

代码语言:javascript
复制
   'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\User::class,
    ],
    'citizens' => [
        'driver' => 'eloquent',
        'model' => App\Models\Citizen::class, //path to your model
    ],
],

现在,您可以通过使用auth:citizens作为中间件使用带有自定义保护的中间件。例如,在路由文件中,

代码语言:javascript
复制
Route::middleware('auth:citizens')->group(function(){

});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73993518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档