使用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两个。怎么自己设置任何一个的时候获取不到数据?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 16

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

3年前 评论
勇敢的心 (楼主) 3年前
MArtian (作者) 3年前
勇敢的心 (楼主) 3年前

vendor/laravel/sanctum/src/Guard.php

__invoke

supportsTokens

关键词给你了。

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

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

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

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

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

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

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

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

1年前 评论
勇敢的心 (楼主) 1年前
Richarmy (作者) 1年前

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