【发布时间】:2018-01-03 13:11:43
【问题描述】:
CreateFreshApiToken,一旦添加到 Kernel.php 中的“web”中间件组,应该附加 laravel_token cookie 以响应通过 web 中间件发出的每个请求,不是吗?例如,该组中的任何东西都应该接收 cookie:
Route::group(['middleware' => ['web']], function () {
Route::get('/{vue?}', function () { return view('index'); } )->where('vue', '[\/\w\.-]*');
});
我正在尝试替换当前使用 client_secret 的工作流程,看到 oauth2 和网站在同一个域上,借助 CreateFreshApiToken 的自我消费 api 的想法很受欢迎,尽管此时我'不确定我是否做得对。
【问题讨论】:
-
用户需要登录一次,使用传统方式中间件创建cookie。
-
@Sandeesh 但是一旦我收到令牌会发生什么,我如何通过传递登录名/密码来授权用户?
-
您不会在此方法中收到令牌。创建的 cookie 将包含加密令牌,护照令牌保护将使用该 cookie 来验证来自 cookie 的请求。因此,受
auth:api中间件保护的路由将获得身份验证,而无需手动附加任何访问令牌。因此,在初始登录后(应该是传统方式),您需要至少重新加载一次页面,以便CreateFreshApiToken中间件创建 cookie。 -
嗯,所以在 spa 的上下文中,我必须发送虚拟获取请求来接收令牌,或者调整 CreateFreshApiToken 以便在登录后立即获得它的回复?.. 我想我然后会坚持使用 oauth2 方式。谢谢 Sandeesh,请将消息复制粘贴到答案框中,这样我可以给你一些功劳。
-
@bruddah 我遇到了同样的问题。我有一个 SPA,我想使用 Cookie。 LocalStorage 不如
HttpOnlySecureCookie 安全。从oauth/token获取令牌非常简单。
标签: laravel laravel-5 laravel-passport