2016-12-18 5 views
1
class LoginController extends Controller 
{ 
    #overwrite trait AuthenticatesUsers->credentials 
    protected function credentials(Request $request) 
    { 
     return array_merge($request->only($this->username(), 'password'), ['active' => 1]); 
    } 
} 


class ForgotPasswordController extends Controller 
{ 
    //try to overwrite here 
} 

\vendor\laravel\framework\src\Illuminate\Auth\Passwords\PasswordBroker.php 
class PasswordBroker implements PasswordBrokerContract 
{ 
    if (is_null($user) || $user->active != 1) { <-- add $user->active != 1 
     return static::INVALID_USER; 
    } 

} 

私はLaravel登録/ログインシステムを追加しました。Laravelリセットパスワードチェック余分なアクティブな列を送信する前にリセットリンク

私のログインコントローラーでは、アクティブな列をチェックするために特性を上書きしますが、リセットパスワードに問題があります。私が今やった

は、私は、ベンダーのファイルに触れることをしたくないと私は私のコントローラでそれを上書きしたい私はPaswordBroker$user->active !=1を追加し、それがうまく動作しますが、

です。

誰でもこの方法を知っていますか?

答えて

1

あなたがそれを望むならば、新しいクラスを再初期化しようとすると、PasswordBrokerを拡張した後、メソッドをオーバーライドしようとする(あなたの条件をそのメソッドに追加する)。

class YourClass extends PasswordBroker 
{ 
    public function sendResetLink(array $credentials, Closure $callback = null) 
    { 
     $user = $this->getUser($credentials); 

     if (is_null($user) || $user->active != 1) { 
      return PasswordBrokerContract::INVALID_USER; 
     } 

     $token = $this->tokens->create($user); 

     $this->emailResetLink($user, $token, $callback); 

     return PasswordBrokerContract::RESET_LINK_SENT; 
    } 
} 

私はあなたが私は5.2を使用している、使用しているあなたのLaravelのバージョンを知りません。

このヘルプが必要です。

関連する問題