【问题标题】:Laravel passport with Cartalyst Sentinel带有 Cartalyst Sentinel 的 Laravel 护照
【发布时间】:2018-04-02 22:57:09
【问题描述】:

我正在使用 laravel 护照和哨兵开发 API。我想将它与 VUE js 一起使用。但我在oauth/token 遇到问题。

当我点击 URL 时出现错误

调用未定义的方法 Illuminate\Database\Query\Builder::getAuthPassword()

我的用户模型代码是

namespace App;

use Cartalyst\Sentinel\Users\EloquentUser;
use Illuminate\Notifications\Notifiable;
use Laravel\Passport\HasApiTokens;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends EloquentUser
{
    use HasApiTokens, Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'email',
        'password',
        'name',
        'permissions',
        'photo_id'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    public function findForPassport($username) {
        return $this->where('email', $username)->first();
    }


    public function photo(){
        return $this->belongsTo('App\Photo');
    }
}

如果我使用Class User extends Authenticatable 那么它可以工作并得到

status: 200, statusText: "OK"

,但是如果我使用EloquentUser 则会出现错误

调用未定义的方法 Illuminate\Database\Query\Builder::getAuthPassword()

如何解决这个问题?

【问题讨论】:

    标签: laravel-5 laravel-passport cartalyst-sentinel


    【解决方案1】:

    答案就在错误中。

    调用未定义的方法 Illuminate\Database\Query\Builder::getAuthPassword()

    所以我只是将 Authenticatable trait 设置为 Use Authenticatable; 并将类导入命名空间

    use Illuminate\Auth\Authenticatable;

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多