尝试在 Laravel 中使用 JWT Auth 创建用户时出错 [关闭]

Posted

技术标签:

【中文标题】尝试在 Laravel 中使用 JWT Auth 创建用户时出错 [关闭]【英文标题】:Error when trying to create an user with JWTAuth in Laravel [closed] 【发布时间】:2021-01-21 05:42:21 【问题描述】:

我正在尝试使用 php 和 Laravel 制作一个简单的身份验证 API 以使用 JWTAuth 获取令牌,但每次尝试创建用户时都会出现此错误:

[Tue Oct  6 07:21:21 2020] 127.0.0.1:56819 Accepted
[Tue Oct  6 07:21:22 2020] 127.0.0.1:56819 Closing
[Tue Oct  6 07:21:31 2020] 127.0.0.1:56820 Accepted
[Tue Oct  6 07:21:31 2020] PHP Fatal error:  Class App\Models\User contains 1 abstract method and must
 therefore be declared abstract or implement the remaining methods (Tymon\JWTAuth\Contracts\JWTSubject::getJWTCustomClaims) 
in E:\_Code\laravel\ApiDevBarber\app\Models\User.php on line 10
[Tue Oct  6 07:21:33 2020] 127.0.0.1:56820 Closing

Insomnia、Rest 测试测试和高级 REST 客户端都会引发此错误。我已经按照 Laravel 和 JWT 文档编写了 User.php,下面是整个代码。

<?php

namespace App\Models;

use Tymon\JWTAuth\Contracts\JWTSubject;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

class User extends Authenticatable implements JWTSubject

    use Notifiable;

    protected $hidden = ['password'];

    public $timestamps = false;

    public function getJWTIdentifier() 
        return $this->getkey();
    

    public function getJWTCustomClains() 
        return [];
    

我是 PHP 和 Laravel 的新手,我错过了什么吗?

【问题讨论】:

将您的方法 getJWTCustomClains 重命名为 getJWTCustomClaims 我不相信……哈哈。我查看了代码并跳过了这个错字,这一定是因为我不是以英语为母语的人。谢谢@Dmitry。 【参考方案1】:

您的方法 getJWTCustomClaims(而不是 getJWTCustomClains)中有错误

【讨论】:

我们通常不会为简单的拼写错误写答案,评论和近距离投票(由拼写错误引起)就足够了。

以上是关于尝试在 Laravel 中使用 JWT Auth 创建用户时出错 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jwt-auth 在 Laravel 中正确设置 JWT 机密?

laravel 8 - auth()->factory() 相同的 refresh() 和尝试() 在 JWT Auth Controller 中未定义

Laravel 8 tymon/jwt-auth 使另一个用户的令牌无效

Laravel 7.0 - tymon/jwt-auth - 检查令牌是不是有效

tymon/jwt-auth Laravel:无法验证令牌签名

Laravel 5.3 使用 JWT Auth 时限制登录