Laravel使用JWT生成token报错relatedTo()
本人新手小白,自己尝试了好几天跟着教程走一直有这个报错,上网上直接搜没有相关的解决办法,后来上了JWT的github搜issue,发现了方法,属实是无语了。
教程链接:https://learnku.com/articles/10885/full-use-of-jwt
(教程是个很好的教程,是我比较菜了QAQ)
JWT github解决方法:https://github.com/PHP-Open-Source-Saver/jwt-auth/issues/115
简单来说就是你的数据库用户表的id字段不是叫id的话就要改一下
我的模型是这个,自己根据自己的模型改
App/Models/User.php
public function getJWTCustomClaims()
{
return [ 'sub' => $this->uid ?? '',];//我的id字段是uid,如果你是user_id就改成user_id
// return [];//原本根据教程是这个
}
最后运行一下发现返回token了
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vMTI3LjAuMC4xOjgwMDAvYXBpL2F1dGgvbG9naW4iLCJpYXQiOjE2ODUyNTE0ODAsImV4cCI6MTY4NTI1NTA4MCwibmJmIjoxNjg1MjUxNDgwLCJqdGkiOiJwS2VyazNuZ1R0VWhBaHVCIiwic3ViIjoiMiIsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ.9WWKtxmQoi8JpmYtVk_4BMc5gNBQ8m61OkNAjxnDdMA",
"token_type": "bearer",
"expires_in": 3600
}
希望能帮到同样面对这个问题的人