使用Sanctum做API认证出现了问题,SQLSTATE[42S22]: Column not found: 1054 Unknown column 'api_token' in...

laravel/sanctum v2.14.2

当运行

Auth::user();

的时候正常。

当设置看守器为api的时候报一下错误

Auth::guard('api')->user()SQLSTATE[42S22]: Column not found: 1054 Unknown column 'api_token' in 'where clause' (SQL: select * from `users` where `api_token` = 5|upnFrAnnUblhRPIrV6USsx7YW4uT8yh6mNwOYCbH limit 1)

当设置看守器为web的时候结果为null。
这我有有点看不懂了,看守器就api和web两个。怎么自己设置任何一个的时候获取不到数据?

让PHP再次伟大
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 16

你确定这个 api_token 不是你们自己加的验证吗? Scantum 可没往 Users 表里面加字段啊。

2年前 评论
勇敢的心 (楼主) 2年前
MArtian (作者) 2年前
勇敢的心 (楼主) 2年前
陈先生

vendor/laravel/sanctum/src/Guard.php

__invoke

supportsTokens

关键词给你了。

2年前 评论
勇敢的心 (楼主) 2年前
陈先生

这最佳答案是否过于离谱?

2年前 评论
勇敢的心 (楼主) 2年前
陈先生 (作者) 2年前

sanctum默认是web,你这个api_token从何而来,就得自己好好检查代码了

2年前 评论
勇敢的心 (楼主) 2年前

我也遇到了这个问题,我的处理方式是:
../config/sanctum.php

|--------------------------------------------------------------------------
| Sanctum Guards
|--------------------------------------------------------------------------
//    'guard' => ['web','api'],
2年前 评论
勇敢的心 (楼主) 2年前

楼主有解决吗?我也遇到这个问题,好奇怪,按文档来写,不知道这个问题出现在哪里

4个月前 评论
勇敢的心 (楼主) 4个月前
Richarmy (作者) 4个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!