【问题标题】:How to create and secure multi-auth api gurds using laravel 8 passport?如何使用 laravel 8 护照创建和保护多重身份验证 api gurd?
【发布时间】:2020-11-14 16:24:19
【问题描述】:

我正在为 Android 应用构建一个 API,它需要使用 Laravel 8 进行两种类型的身份验证。用户身份验证和教师身份验证。

我遇到的问题是,为用户创建的令牌可以在教师 API 请求中使用,而它们不能在教师路由中使用。如果有人复制了用户的令牌,则可以更改用户的数据。

我对 auth.php 做了一些修改: 我在守卫中添加了这个:

 'teacher_api' => [
            'driver' => 'passport',
            'provider' => 'teacher',

        ],
'guards' => [
        'teacher' => [
            'driver'   => 'session',
            'provider' => 'teachers',
        ],

        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
            'hash' => false,
        ],
        'teacher_api' => [
            'driver' => 'passport',
            'provider' => 'teachers',

        ],
    ],

提供者数组:

 'providers' => [
        'teachers' => [
            'driver' => 'eloquent',
            'model'  => App\Teacher::class,
        ],

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

    ],

Api 路由:

    Route::prefix('teacher')->group(function () {
        Route::group(['middleware' => 'auth:teacher_api'], function () {
            Route::get('teacher_info', 'Api\ApiController@teacherInfo');
            Route::post('update_teacher_info', 'Api\ApiController@updateTeacherInfo');
        });
    });

我忘记了哪一步?

【问题讨论】:

  • 您是否错过在AuthServiceProvider 的引导方法中定义Passport::routes 方法?
  • @sta 不,我没有错过。

标签: php laravel laravel-passport


【解决方案1】:

如果有人正在寻找与我的问题相关的答案。

  1. 如果您使用的是 laravel 8.x。不要尝试安装 sfelix-martins/passport-multiauth 包。该软件包已被弃用,因为 Laravel Passport 从 9.0 版开始就有原生实现。
  2. 尝试阅读这些文章。他们每个人都使用护照范围执行多重警卫,并希望您能像我一样找到您需要的解决方案。

文章:

Laravel 8 Multi Authentication API Tutorial

How to setup Multi-Auth for Laravel APIs | by Toby Okeke | Medium

【讨论】:

    猜你喜欢
    • 2019-05-21
    • 2019-06-14
    • 2018-08-31
    • 2020-08-13
    • 2018-06-16
    • 2018-09-01
    • 2020-05-10
    • 1970-01-01
    • 2017-07-04
    相关资源
    最近更新 更多