【发布时间】:2019-08-20 16:41:05
【问题描述】:
我和我的朋友正在创建一个应用程序。我使用 Laravel 5.4 作为后端,他使用 Angular2 作为前端。
Laravel 项目用作带有 JWTauth 令牌身份验证的 REST API。 现在我想在 Laravel 项目中制作一个只有管理员才能访问的小型后端仪表板。
当我只是浏览到 api 后端部分时,我将如何使用不同的身份验证(带会话)而不是令牌?
【问题讨论】:
我和我的朋友正在创建一个应用程序。我使用 Laravel 5.4 作为后端,他使用 Angular2 作为前端。
Laravel 项目用作带有 JWTauth 令牌身份验证的 REST API。 现在我想在 Laravel 项目中制作一个只有管理员才能访问的小型后端仪表板。
当我只是浏览到 api 后端部分时,我将如何使用不同的身份验证(带会话)而不是令牌?
【问题讨论】:
这很简单。只需将 JWT 身份验证中间件应用于 API 路由,将普通身份验证中间件应用于您的管理仪表板。您甚至不需要调整任何东西,因为 JWT 不需要更改您的表结构或更改现有的身份验证。
使用 auth 和 guest 中间件使用内置的 int auth 脚手架构建后端仪表板。对于 api 路由,如果您使用的是 tymondesigns/jwt-auth 包,请使用标准的 api 中间件和 jwt.auth 中间件。这两者不会有冲突。
【讨论】:
web.php 中,并为此使用标准身份验证。然后你有正常流程的会话和cookies。为什么要混合使用 api 和仪表板路由?如果这样做,只会使代码库复杂化。
php artisan route:list,它应该让您清楚地了解您的路线以及应用于每条路线的中间件。
兄弟使用单独的守卫,例如
$loginUser = Auth::guard('web')->loginUsingId(12,true);
【讨论】: