Laravel Passport 通过网络问题使用自己的 API

Posted

技术标签:

【中文标题】Laravel Passport 通过网络问题使用自己的 API【英文标题】:Laravel Passport Consume Own API via web issue 【发布时间】:2019-02-18 09:34:50 【问题描述】:

我正在运行一个 laravel 5.6 应用程序,直到今天一切都很好。

我运行composer update 进行了一些修复,但问题来了。

通过X-CRSF-TOKEN 的护照身份验证不再有效。

看看下面通过 axios 的典型 api 调用,我可以说一切都很好。

Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cache-Control: no-cache
Connection: keep-alive  
Cookie:remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d=eyJpdiI6IjVBc2hRaFlqQnhoSEREQ1RHU0NROHc9PSIsInZhbHVlIjoiNEFqYTRScklzK0VReHl4SWV2V2x6Y0g3SVR0NGo0enhRcVVWbGJ4cm5ubGRwXC85Q2VuVE9EVGxnZTBGRm9cLytnSEpsYVptV0x4Nk8wYnZ2bWFsK2dDODRGTmk2TDk5K0hFSjZuR2k1ZTdlXC9tclNKUmxncVd0U29yZUpUNWxRNDZcL3VDcmFwbjdVRzl1WnczSGN6bnpcLzc4Z0s0cTBTXC80MXIzeVJNZ1krNjhVPSIsIm1hYyI6ImQ5ZWRjZGRhNGMwNTcwYTMzNGI0NTE4YzZmNzQzNDE4YjJlMzU4YTU4OTQ1YWNjMDcyNmU1OTc3ZjAzNGE1YmYifQ%3D%3D; laravel_token=eyJpdiI6IkZkeTcxWURBVk1Ea1F1YUlNRUFmU0E9PSIsInZhbHVlIjoiUWtJMVpZNkNaRWtRa0U1YU1TUXZyS0JZa1F6UlcwbjhmWkV3MXF5Mzh1TkhDRFwvZnpzTVJGend3YVRLTGFSN1ZadVcxb0tRRWRVXC90dnpwUVNGUHBXWE5MbXFRUEk1em02dXh5dnZqSzgxSjB0Wnp6N2RiSVFJenpTUUxqMEU0WHRNTE5KV1g5Q3EybzJRV0NpKzV5SmlLXC9FaDZEaGx1bGozb1pnN3R0ZjZSOVZVTDZTcGdYSnJibjUwdVhXdlBkN0xQaEhNMVU3enpwUnoxUWVndXYwVGJYUCtZQXRvK281cUlOc0Zxc0pzaEN4dmpXZ0VIZURiZUs5WDZGK0tBSCIsIm1hYyI6ImM2OGUwOTMxNTM0NzNiN2VlZTNjMzhkOGExYmE4N2ZjN2M0ZTM0ZTBmZjlkYzdlMTA1ZjQ5MjdiMWY4MzEyNDEifQ%3D%3D; XSRF-TOKEN=eyJpdiI6Ims5bFc3OFBMWmM0ZlFwQVZtODZlc1E9PSIsInZhbHVlIjoiRnBzZ25VQkNuaUM2Z0NwMDMyQ3g5aGdsNk5hM1NXdUl2a2J3VExrRUpMSVBzTFwvMzNjT2U0Q2liQnUrQVNIaUYiLCJtYWMiOiJiNjk0ZjFlZjgxYTkxMjhhNjYwNWU2ZGMwOTQyZDhjYWViZjBiNDk2MTY4OTM2ZjE5ZmZkZTllMWNmZDQ2NzJlIn0%3D;aposhashamura_session=eyJpdiI6ImhTakR5S0dsXC9zbyt5M0JycFg0eVdnPT0iLCJ2YWx1ZSI6IndEUkp0N0dGWWRGVEFUQVVlOWZ5VnYyQ0ZHUk1cLzhUbHlnZVJSM21YSVFSS0xUXC9BaTBqeTJrRkZiV0RqdzhIVCIsIm1hYyI6IjFlZGJlYzE4MDEzOTIyNTAxYWYxNzE5N2VhNzExY2M5ZWZlNWM4ZWZkNDM4OTE3NzEzOTRjYWQxZWFmMzI5OGYifQ%3D%3D
Host: somewhereonmymachine.my
Pragma: no-cache
Referer: http://somewhereonmymachine.my/backoffice/reports/admin
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/69.0.3497.92 Safari/537.36
X-CSRF-TOKEN: rzLjJ0tIqo1he0k9wxypE8O685iLjmpEuRNFtP7C
X-Requested-With: XMLHttpRequest
X-Socket-Id: 125019.15490345
X-XSRF-TOKEN: eyJpdiI6Ims5bFc3OFBMWmM0ZlFwQVZtODZlc1E9PSIsInZhbHVlIjoiRnBzZ25VQkNuaUM2Z0NwMDMyQ3g5aGdsNk5hM1NXdUl2a2J3VExrRUpMSVBzTFwvMzNjT2U0Q2liQnUrQVNIaUYiLCJtYWMiOiJiNjk0ZjFlZjgxYTkxMjhhNjYwNWU2ZGMwOTQyZDhjYWViZjBiNDk2MTY4OTM2ZjE5ZmZkZTllMWNmZDQ2NzJlIn0=

我用谷歌搜索了很多,但我似乎无法弄清楚其中的疑虑。

\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class 一直是$middlewareGroupsapp/Http/Kernel.php 中的最后一个条目

有人吗?

【问题讨论】:

您遇到的错误是什么? 推荐这个github.com/laravel/passport/issues/564希望对你有帮助 显示你的 bootstrap.js 和 app.js @samo 抱歉,我的 Api 响应未通过身份验证。 @samo 再次设置laravel_token 看看它在浏览器转储中的问题 【参考方案1】:

如果有人遇到此问题,请在更新后尝试回滚更新或直接运行php artisan key:generate

这应该可以解决问题。

【讨论】:

以上是关于Laravel Passport 通过网络问题使用自己的 API的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.5 - Laravel Passport 使用正确的授权类型?

Laravel Passport APi - 隐式授权

Laravel Passport API 注册新用户

Laravel 通过 Passport 实现 API 请求认证:基于 Cookie 的同域名应用篇

使用 Passport 进行 Laravel API 身份验证导致 401(未经授权)

如何使用 Laravel Passport 验证令牌?