Laravel 5.3 集成 dingo api 和 oauth2 未找到列:1054 Unknown column 'api_token' in 'where Clause'

Posted

技术标签:

【中文标题】Laravel 5.3 集成 dingo api 和 oauth2 未找到列:1054 Unknown column \'api_token\' in \'where Clause\'【英文标题】:Laravel 5.3 integrate dingo api and oauth2 Column not found: 1054 Unknown column 'api_token' in 'where clause'Laravel 5.3 集成 dingo api 和 oauth2 未找到列:1054 Unknown column 'api_token' in 'where Clause' 【发布时间】:2017-05-26 01:48:04 【问题描述】:

我正在使用 laravel 5.3 为移动应用构建 api 和后端管理。 我集成了 Dingo/api 包并使用 Oauth2 进行身份验证。 我创建了一个 API 并使用邮递员登录: API 网址:mydomain/api/auth/login 登录结果:

“元”: “消息”:“成功”, “状态码”:1000, “状态”:真 , “数据”: "access_token": "BK81coQ8mnR7PrfEuYzOwKBuZukXgeVw2pcUjHcZ", "token_type": "承载者", “expires_in”:604800, "refresh_token": "KRIB6YnvqT25rG1fGtoMrK9mGeB7m2J3cdj9QB8N", “轮廓”: “身份证”:1, “用户 ID”:1, "name": "ThanhDN", “邮政编码”:空, “电话号码”:空, “年龄”:空, “性别”:空, “地址”:空, “头像”:空, “状态”:空, "created_at": "2017-01-11 04:44:33", "updated_at": "2017-01-11 04:44:33", “deleted_at”:空

我使用access_token调用API获取用户信息 API 网址:mydomain/api/user/1 但我得到了一个错误:

"message":"SQLSTATE[42S22]: 未找到列:1054 'where 子句'中的未知列 'api_token' (SQL: select * from users where api_token = 9mQmZqIjqnRamzX7syjtU6X1jGWrfQXndKKT97TU 限制 1)","代码":"42S22","status_code":500,

我已搜索但找不到任何解决方案。请帮我解决它。 非常感谢!!!

即使您调用注销 网址:mydomain/api/logout

【问题讨论】:

【参考方案1】:

确保在config/auth.php 中将['guards']['api']['driver'] 设置为passport,并更新了配置缓存:php artisan config:cache

【讨论】:

Ohhhhhhhhh,谢谢爸爸,我需要清除缓存。花了一所房子想知道我到底做错了什么。上帝祝福你!!! +1 非常好的EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE【参考方案2】:

首先运行这个命令刷新所有的数据库迁移

php artisan migrate:refresh

然后,运行此命令

php artisan passport:install

【讨论】:

以上是关于Laravel 5.3 集成 dingo api 和 oauth2 未找到列:1054 Unknown column 'api_token' in 'where Clause'的主要内容,如果未能解决你的问题,请参考以下文章

php 使用Laravel Nova API防止Dingo API冲突

laravel/dingo API 上的变压器使用

Laravel Dingo API 和中间件问题\\VerifyCsrfToken.php

laravel 使用dingo api 添加sql调试

用laravel dingo/api创建简单的api

内部请求需要 Laravel Dingo 身份验证 JWT