laravel 5.3 + Tymon\JWTAuth = 如何使用自己的身份验证创建令牌

laravel 5.3 + Tymon\JWTAuth = How to create token with own authentication

我正在构建 Restful api,除了我不想使用 Laravel 的用户身份验证系统(而是使用我自己的)。

所以我卡在这里了:

$this->jwt_token = JWTAuth::attempt(['email'=>$email, 'pass'=>$pass])

这给了我以下 错误:

Type error: Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials() must be an instance of Illuminate\Contracts\Auth\Authenticatable, instance of App\User given, called in **\vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php on line 387

那我该如何解决呢?任何的想法? 谢谢

您的用户模型似乎没有扩展正确的 Eloquent class。

拉起你的用户模型,并确保它 extends Illuminate\Foundation\Auth\User

在默认 Laravel 安装中,这是通过 use Illuminate\Foundation\Auth\User as Authenticatable 导入的,然后是模型 extends Authenticatable


如果您不想使用 User 模型进行身份验证,您可以在 config/jwt.php 中更改应该使用的模型,但是无论您选择什么,都需要扩展 Auth\User class 如上。