我在 Laravel 5.6 中。我已经构建了所有 API 路由,并正确响应来自 REST 客户端 (Paw) 的请求。我正在尝试构建一个简单的前端来访问这些路由。
我尝试尽可能多地使用 Laravel 的开箱即用功能,因此我使用 Axios 使用 Vue.js 从刀片模板中调用这些路由。如果我在测试路由上禁用身份验证中间件,它会起作用,但是当为路由启用身份验证中间件时,我会在控制台上收到 401 错误。
问题似乎很明显......auth:api
守护我的/api
路由希望在标头中看到 oauth 令牌,但是当我使用网页登录时,它会进行会话身份验证。我认为有一种简单的方法可以解决这个问题,而不必在 Web 前端欺骗 oauth 令牌请求,对吧?我是否需要以某种方式通过 Axios 传递我的请求中的会话令牌?如果是这样,我是否还需要更改auth:api
我的 api 路由文件中的守卫?
我解决了!我有点尴尬,因为答案实际上在 Laravel 文档中,但我会说我在在这里发布问题之前尝试过这个,但它不起作用。也许当时还有别的东西坏了。
Per the Laravel 文档 https://laravel.com/docs/5.6/passport#consuming-your-api-with-javascript:
您需要做的就是添加CreateFreshApiToken
中间件到你的web
您的中间件组app/Http/Kernel.php
file:
'web' => [
// Other middleware...
\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
],
这个 Passport 中间件将附加一个laravel_token
cookie 给你的
传出的回应。该 cookie 包含一个加密的 JWT
Passport 将用于验证来自 JavaScript 的 API 请求
应用。现在,您可以向应用程序的 API 发出请求
没有显式传递访问令牌...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)