2017-11-17 4 views
0

私はlaravel標準認証に条件を1つ追加しようとしています。私はこの質問で多くのフォーラムを見つけました。彼らのほとんどは、ベンダーのフォルダを変更します。私がやりたくないものです。私はまた、AuthController.phpでクレデンシャル(Request $ request)関数を追加する方法を見つけましたが、私は運がありません。それは次のようになります:Laravel 5.2標準の認証コントローラにログインする条件をもう1つ追加します

protected function credentials(Request $request) 
{ 
    return array_merge($request->only($this->username(), 'password'), 
     ['Type' => 1]); 

} 

誰もがこの問題を解決するかアドバイスできますか?おかげで以下

+0

あなたは認証コントローラからデフォルトのメソッドをオーバーライドする必要があります役立ちます。あなたの要求に基づいて新しいものを作りましょう。 –

+0

資格証明メソッドを追加しましたが、AuthControllerには存在しません。 「あなたの要件に基づいて新しいものを作る」ということは何を意味しますか? – LTM

+0

正確に何をしたいのですか –

答えて

1

は、あなたがログイン機能を無効にするためにAuthControllerで使用できる機能です。

public function login(Request $request) 
    { 
     $validator = Validator::make(
      $request->all(), 
      array(
       'user_name' => 'required', 
       'password' => 'required', 
      ), 
      array(
      ) 
     ); 

     if($validator->fails()){ 
      return redirect()->back()->withInput()->withErrors($validator->errors(),'invalid_credentials'); 
     } 

     if (!\Auth::validate(['user_name' => $request->user_name, 'password' => $request->password])) { 


      return redirect()->back()->withInput($request->only('user_name'))->withErrors([ 
       'user_name' => 'Incorrect Username or Password', 
      ],'invalid_credentials'); 
     } 

     $credentials = array('user_name' => $request->user_name, 'password' => $request->password); 

     if (\Auth::attempt($credentials, true)){ 

      /* Check your user type condition */ 
      if(\Auth::User()->type == '1'){ 
       return redirect()->intended($this->redirectPath()); 
      } 
      else{ 
       \Auth::logout(); 
       return redirect()->back()->withInput($request->only('user_name'))->withErrors([ 
        'user_name' => 'Your type validation message', 
       ],'invalid_credentials'); 
      } 
     } 

     return redirect()->back()->withInput($request->only('user_name'))->withErrors([ 
      'user_name' => 'Incorrect email address or password', 
     ],'invalid_credentials'); 
    } 

希望、これはあなたが... :)

+0

これはまさに私が言っていたものです。 –

+0

あなたの返信をありがとう、最初に - 私はそれを追加する必要がありますログインメソッドがありません?第二に、上記のロジックからわかるように、成功したログイン後に「タイプ」をチェックします。私はこれを必要としません。ログイン後に条件を追加する必要があります。 – LTM

+0

まず、はい。デフォルトメソッドをオーバーライドするにはloginメソッドを追加する必要があります。第二に、他の機能を無効にすることもできます。 –

関連する問題