How can I use Laravel's Passport package to authenticate a different password column.
If i want to authenticate from a different 'username' column, it can be done with the following code:
public function findForPassport($username) {
return $this->where('id', $username)->first();
}
It will take Id, as the column. What if I want to use a different 'password' column. A column in the table with a different name such as 'uid_token'.
There's a method the Passport/Bridge asks for called validateForPassportPasswordGrant($password) that you can override in your user model, if you don't override this it will look for a 'password' column in your user table. I'm not entirely sure why they haven't configured it to use Authenticatable method getAuthPassword...
Adding this validateForPassportPasswordGrant
method to User model did the job for me ("PasswMd" - custom column name):
public function validateForPassportPasswordGrant($password)
{
return Hash::check($password, $this->PasswMd);
}