【发布时间】:2018-10-16 00:41:28
【问题描述】:
我在 Laravel 5.6 中。我构建了所有 API 路由并正确响应来自我的 REST 客户端 (Paw) 的请求。我正在尝试构建一个简单的前端来访问这些路由。
我正在尝试尽可能多地使用 Laravel 的开箱即用功能,因此我使用 Axios 从使用 Vue.js 的刀片模板调用这些路由。如果我在测试路由上禁用 auth 中间件,它会起作用,但是当为路由启用 auth 中间件时,我会在控制台上收到 401 错误。
问题似乎很明显......我的/api 路由上的auth:api 守卫希望在标头中看到一个oauth 令牌,但是当我使用网页登录时,它会进行会话身份验证。我认为有一种简单的方法可以解决这个问题,而不必在 Web 前端欺骗 oauth 令牌请求,对吧?我是否需要通过 Axios 以某种方式在我的请求中传递会话令牌?如果是这样,我是否还需要更改我的 api 路由文件中的 auth:api 保护?
【问题讨论】:
-
默认
auth:api中间件要求每个用户在数据库中有一个字段api_token,你加了一个吗? -
这不是真正的问题。 Passport 在
user表中创建了一个名为remember_token的字段,并且我的API 路由都与我的REST 客户端的OAuth 一起正常工作。问题是我正在尝试构建的 Vue.js / Axios 前端使用相同的 API 路由。 -
啊,所以你在前端有令牌,但不确定如何将它附加到请求中?
-
我现在好像坏了一些东西。我现在只能从 Axios 收到
undefined,即使我禁用了所有身份验证。值得注意的是,我在控制台中看到/js/bootstrap.js.map出现 404 错误。对该问题的搜索会带来一百万次点击,但没有有效的答案。 -
好的,我修复了破坏整个脚本的问题。我仍然在控制台中收到关于
/js/bootstrap.js.map的 404 错误,但这似乎并不重要,因为当我在路由上禁用身份验证时,我得到了想要的结果。所以我回到了我第一次发布这个问题时的状态,但仍然没有有效的解决方案。
标签: laravel authentication vue.js axios