阅读(3763) (11)

Laravel 8 自定义密码验证

2021-07-09 12:59:40 更新

当使用密码进行验证时,Passport 将使用模型中 password 属性值验证给定的密码。如果你的模型没有 password 属性或者你希望自定义密码验证的逻辑,你可以在模型中定义一个 validateForPassportPasswordGrant 方法来实现:

<?php

namespace App\Models;

use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Facades\Hash;
use Laravel\Passport\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;

    /**
     * 通过Passport的密码授权验证用户使用的密码
     *
     * @param  string  $password
     * @return bool
     */
    public function validateForPassportPasswordGrant($password)
    {
        return Hash::check($password, $this->password);
    }
}