2017-06-20 10 views
1

私は現在、より大きなアプリケーション(Zend 1.x)と共に動作するアプリケーション(Laravelを使用)を構築しています。Laravel Passportカスタムハッシングメカニズム

私はAPI認証にLaravelパスポートを使用しています。私はLaravel PassportのデフォルトのハッシングメカニズムをZendハッシュに変更して、認証作業を行う必要があります。

誰かがこのAPIを実行するためにオーバーライドする必要があるAPIまたは何かを指摘できますか?私はLaravel Passportのコアコードを編集しないことを好みます。

私はカスタムユーザープロバイダを作成し、validateCredentials()メソッドを変更することを提案しましたが、これらはすべてコアラベル向けです。

私は既にユーザークラスのfindForPassportメソッドを使用してユーザー名フィールドをオーバーライドしています。不思議誰のため

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

答えて

1

、あなたはLaravel Passport認証をカスタマイズ処理するUserクラスでは2つの方法(多分もっと)をオーバーライドすることができます:Laravelのたるみフォーラムで@redvikingへ

/** 
* Override the field which is used for username in the authentication 
*/ 
public function findForPassport($username) 
{ 
    return $this->where('email', $username)->first(); 
} 

/** 
* Add a password validation callback 
* 
* @param type $password 
* @return boolean Whether the password is valid 
*/ 
public function validateForPassportPasswordGrant($password) 
{ 
    $hasher = new HSAUserHasher(); // Or whomever does your hashing 

    $result = $hasher->create_hash($password, $this->salt); 
    $hashedPassword = $result['password']; 

    return $hashedPassword == $this->password; 
} 

おかげで(https://larachat.slack.comを)答えに向かって私を助けるために。

関連する問題