首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel中的API JWT防护和web会话防护

Laravel中的API JWT防护和web会话防护
EN

Stack Overflow用户
提问于 2020-09-19 05:31:50
回答 1查看 883关注 0票数 0

我正在尝试让Laravel使用多个卫士--这取决于身份验证类型。

当我通过API进行身份验证时,我希望使用jwt guard。当我通过web进行身份验证时,我想使用session guard。

我的config\auth.php看起来像这样:

代码语言:javascript
运行
复制
'defaults' => [
        'guard' => 'api',
        'passwords' => 'users',
    ],
代码语言:javascript
运行
复制
'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'jwt',
            'provider' => 'users',
            //'hash' => false,
        ],
    ],
代码语言:javascript
运行
复制
'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
]

我的routes/web.php看起来像这样:

代码语言:javascript
运行
复制
Route::get('/', 'HomeController@index')->name('home');
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');

我的routes/api.php看起来像这样:

代码语言:javascript
运行
复制
Route::post('login', 'AuthController@login');
Route::get('logout', 'AuthController@logout');
Route::post('refresh', 'AuthController@refresh');
Route::get('me', 'AuthController@me');

我得到的是应用程序接口身份验证工作得很好,而web却不行。我已经调试过了,它似乎总是在检查jwt防护。

有人能帮我吗?如果可能,我如何在路由或Auth::routes()呼叫上设置守卫?

EN

回答 1

Stack Overflow用户

发布于 2020-09-19 16:43:38

我已经通过将默认路由切换为web路由解决了这个问题。

然后,我更新了app/Http/Controllers/AuthController.php的代码,以便在使用auth方法的任何地方使用特定的api身份验证:

auth('api')->attempt($validator->validated())'expires_in' => auth('api')->factory()->getTTL() * 60

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

https://stackoverflow.com/questions/63963071

复制
相关文章

相似问题

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