【问题标题】:laravel 5.3 + Tymon\JWTAuth = How to create token with own authenticationlaravel 5.3 + Tymon\JWTAuth = 如何使用自己的身份验证创建令牌
【发布时间】:2017-01-29 06:59:34
【问题描述】:

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

所以我卡在这里了:

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

这给了我以下错误:

类型错误:参数 1 传递给 Illuminate\Auth\EloquentUserProvider::validateCredentials() 必须是 Illuminate\Contracts\Auth\Authenticatable 的实例, App\User 给定,调用 **\vendor\laravel\framework\src\Illuminate\Auth\SessionGuard.php 第 387 行

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

【问题讨论】:

    标签: php jwt laravel-5.3


    【解决方案1】:

    您的 User 模型似乎没有扩展正确的 Eloquent 类。

    调出你的用户模型,并确保它是extends Illuminate\Foundation\Auth\User。

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


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

    【讨论】:

    • 它确实解决了错误,但是我无法使用JWTAuth::attempt 进行身份验证,因为我使用我自己的身份验证。所以我想在 Laravel 中,如果你自己做一件事,那么你也必须自己做其他所有事情。
    猜你喜欢
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 2017-04-27
    • 2019-10-25
    • 2014-10-13
    • 2018-11-22
    • 2019-07-04
    • 1970-01-01
    相关资源
    最近更新 更多