Laravel 5.3 个人访问令牌 500

Posted

技术标签:

【中文标题】Laravel 5.3 个人访问令牌 500【英文标题】:Laravel 5.3 Personal access token 500 【发布时间】:2017-03-26 13:54:18 【问题描述】:

我正在尝试使用 Passport 设置我的自定义 API(好吧,我已经完成了一半,只需要构建我的身份验证)。每当我尝试从我的 Passport 仪表板(/home 路由)创建个人访问令牌时,我都会收到“哎呀,出了点问题!”错误。

这来自我的 Vue 组件 (PersonalAccessTokens.vue),我的控制台在 Post 路由中记录了一个 500 内部服务器错误,用于存储个人访问令牌...

\Laravel\Passport\Http\Controllers\PersonalAccessTokenController@store 是负责的方法,但我似乎无法找到不寻常的东西,因为我完全按照关于 Passport 的 Laracasts 视频进行操作

还有其他人遇到这个问题吗?

TIA!

【问题讨论】:

错误日志中的错误是什么...? 没什么,错误来自我的 Vue 组件,我猜应该是在 /logs 目录中吧?假设服务器返回 500 它应该记录在某处.. @F***TjoeAOn 如果您使用的是 chrome 打开开发者控制台,请转到 network 选项卡,然后执行请求。您应该会看到刚刚执行的请求。单击它,然后从该请求的选项卡中选择preview。这个,或者只是看看storage/log/laravel.log 并查看堆栈跟踪:) 哇,谢谢,我的日志是空的,但不知道您可以像这样使用网络选项卡。它说“ClientRepository.php 第 66 行中的 ErrorException:试图获取非对象的属性”。其中指函数personalAccessClient(): public function personalAccessClient() if (Passport::$personalAccessClient) return Client::find(Passport::$personalAccessClient); else return PersonalAccessClient::orderBy('id', 'desc')->first()->client; 【参考方案1】:

我想通了。

显然它无法读取我的个人访问令牌客户端,您应该在使用以下命令设置 Passport 时生成:php artisan passport:install

运行这个命令解决了我的问题。

参考: https://laracasts.com/discuss/channels/laravel/create-personal-access-token-in-laravel-passport-is-failing

【讨论】:

【参考方案2】:

更多关于这方面的信息,因为我遇到了同样的问题。你需要运行:

php artisan passport:install

每次您通过以下方式刷新迁移时:

php artisan migrate:refresh

为了解决这个问题,我刚刚向package.json 添加了一个使用npm-run-all 的脚本,所以我可以在一个命令中完成:

"scripts": 
  // Other scripts
  "migrate:refresh": "php artisan migrate:refresh",
  "passport:install": "php artisan passport:install",
  "db:refresh": "npm-run-all --sequential migrate:refresh passport:install"

现在我可以这样做了:

npm run db:refresh

【讨论】:

以上是关于Laravel 5.3 个人访问令牌 500的主要内容,如果未能解决你的问题,请参考以下文章

laravel 5.3 护照和角度存储访问令牌

使用 AJAX 在 Laravel 5.3 中删除记录

如何访问输入的令牌值 - Laravel API

如何在 jwt laravel 5.3 中处理令牌到期?

CSRF 令牌不匹配错误,Laravel 5.3/VueJS2

本地主机上 laravel 5.3 中 ajax 发布请求中的 CSRF 令牌不匹配异常