2016-11-02 16 views
2

こんにちは、私はlaravelの認証に問題があります。私は2つのミドルウェアを使用する必要があります1.ウェブと2.認証です。私はWebミドルウェアを使用しているので、セッションを使ってフラッシュメッセージを表示できます。ユーザー/管理者の認証を行うために認証ミドルウェアを使用したいと考えています。私はいくつかの問題に直面しています。ミドルウェアの認証がWebで動作しないLaravel 5.2

以下

は私の機能で権限を確認すると、それぞれのルートにリダイレクトするには、以下の

public function postLoginForm(){ 

    $email=Input::get('email'); 
    $password=Input::get('password'); 

    $data=[ 
     'email'=>$email, 
     'password'=>$password 
    ]; 
    $rules=[ 

     'email'=>'required', 
     'password'=>'required' 

    ]; 

    $validator=Validator::make($data,$rules); 

    if($validator->fails()){ 

     Session::flash('fail', 'Oops Something went wrong!!'); 
     return redirect()->back()->withErrors($validator); 

    } 
    else{ 



     if(Auth::attempt($data)){ 




      $checkStatus=User::select('*')->where('email',$email)->first(); 

      Session::put('email',$checkStatus->email); 
      Session::put('user_type',$checkStatus->user_type); 




      if($checkStatus['user_type']=='4'){ 
       if($checkStatus['status']=='0'){ 
        Session::flash('wait', 'Registration is not approved!!'); 

        return "student"; 
        return redirect()->back(); 
       } 
       else{ 

        return "student else"; 

        return Redirect::route('get.student.dashBoard'); 

       } 
      } 
      else if($checkStatus['user_type']=='1'){ 


       return Redirect::route('get.admin.dashBoard'); 

      } 
      else if($checkStatus['user_type']=='2'){ 


       return 'admin sir view'; 

       return Redirect::route('get.admin.dashBoard'); 
      } 
      else if($checkStatus['user_type']=='3'){ 



       return 'admin other view'; 


       return Redirect::route('get.admin.dashBoard'); 
      } 
      else{ 
       Session::flash('fail', 'Oops Something went wrong!!'); 
       return redirect()->back(); 
      } 

     } 
     else{ 
      Session::flash('fail', 'Login details not matched!!'); 
      return redirect()->back(); 
     } 

    } 
    return 'nothing works'; 

} 

は、管理

Route::group(['middleware' => ['web']], function() { 

Route::get('/login', 
    ['as' => 'get.login.page', 
     'uses' => '[email protected]']); 

Route::post('/login-done', 
    ['as' => 'post.login.page', 
     'uses' => '[email protected]']); 


Route::get('/register', 
    ['as' => 'get.register.page', 
     'uses' => '[email protected]']); 

Route::post('/register', 
    ['as' => 'post.register.form', 
     'uses' => '[email protected]']); 

Route::get('/forgot-password', 
    ['as' => 'get.forgotPassword.form', 
     'uses' => '[email protected]']); 



     Route::group(['middleware' => ['auth']], function() { 


    Route::get('/admin-dashboard', 
     ['as' => 'get.admin.dashBoard', 
      'uses' => 'admin\[email protected]']); 


    Route::get('/all-achievements', 
     ['as' => 'get.achievements', 
      'uses' => 'admin\[email protected]']); 

    Route::get('/new-achievement', 
     ['as' => 'get.add.achievement', 
      'uses' => 'admin\[email protected]']); 

    Route::post('/add-achievement', 
     ['as' => 'post.achievementsForm', 
      'uses' => 'admin\[email protected]']); 


    Route::get('remove-achievement/{achie_slug}', 
     ['as' => 'post.delete.achievements', 
      'uses' => 'admin\[email protected]']); 

    Route::get('edit-achievement/{achie_slug}', 
     ['as' => 'get.edit.achievements', 
      'uses' => 'admin\[email protected]']); 

    Route::post('update-achievement/{ach_id}', 
     ['as' => 'post.edited.achievement', 
      'uses' => 'admin\[email protected]']); 


    Route::get('/all-news', 
     ['as' => 'get.news.list', 
      'uses' => 'admin\[email protected]']); 


    Route::get('/add-news', 
     ['as' => 'get.add.news', 
      'uses' => 'admin\[email protected]']); 


    Route::post('/add-news', 
     ['as' => 'post.add.news', 
      'uses' => 'admin\[email protected]']); 

    Route::get('/delete-news/{news_slug}', 
     ['as' => 'get.delete.news', 
      'uses' => 'admin\[email protected]']); 

    Route::get('/edit-news/{news_slug}', 
     ['as' => 'get.edit.news', 
      'uses' => 'admin\[email protected]']); 


    Route::post('/edit-news/{news_slug}', 
     ['as' => 'post.edited.news', 
      'uses' => 'admin\[email protected]']); 




    Route::get('/all-admins', 
     ['as' => 'get.admin.list', 
      'uses' => 'admin\[email protected]']); 

    Route::get('/add-admin', 
     ['as' => 'add.new.admin', 
      'uses' => 'admin\[email protected]']); 

    Route::post('/add-new-admin', 
     ['as' => 'post.add.new.admin', 
      'uses' => 'admin\[email protected]']); 


    Route::get('/all-schedule', 
     ['as' => 'get.timeTable.list', 
      'uses' => 'admin\[email protected]']); 

    Route::get('/add-schedule/{id}', 
     ['as' => 'add.timeTable', 
      'uses' => 'admin\[email protected]']); 

    Route::post('/add-new-batch', 
     ['as' => 'add.newBatch', 
      'uses' => 'admin\[email protected]ewBatch']); 

    Route::post('/save-year-batch', 
     ['as' => 'save.year.batch', 
      'uses' => 'admin\[email protected]']); 

    Route::get('/schedule-table/{year}', 
     ['as' => 'view.schedule.table', 
      'uses' => 'admin\[email protected]']); 

    Route::get('/delete-schedule/{slug}', 
     ['as' => 'delete.schedule.one', 
      'uses' => 'admin\[email protected]']); 

    Route::get('/edit-schedule/{slug}', 
     ['as' => 'edit.schedule.one', 
      'uses' => 'admin\[email protected]']); 

    Route::post('/save-edited-schedule/{id}', 
     ['as' => 'save.edited.schedule', 
      'uses' => 'admin\[email protected]']); 




    Route::get('/all-results', 
     ['as' => 'get.all.results', 
      'uses' => 'admin\[email protected]']); 

    Route::get('/add-result', 
     ['as' => 'get.add.results', 
      'uses' => 'admin\[email protected]']); 

    Route::post('/add-new-result', 
     ['as' => 'post.add.result', 
      'uses' => 'admin\[email protected]']); 

    Route::get('/delete-result/{id}', 
     ['as' => 'get.delete.student.result', 
      'uses' => 'admin\[email protected]']); 

    Route::get('/edit-result/{id}', 
     ['as' => 'get.edit.student.result', 
      'uses' => 'admin\[email protected]']); 


    Route::post('/save-edited-result/{id}', 
     ['as' => 'post.edited.result', 
      'uses' => 'admin\[email protected]']); 


    Route::get('/contact-messages', 
     ['as' => 'get.contact.message', 
      'uses' => 'admin\[email protected]']); 


    Route::get('/contact-messages/{id}', 
     ['as' => 'get.delete.contact.message', 
      'uses' => 'admin\[email protected]']); 


}); 

    }); 

のための私のルートである私はそれをログインしようとするたびに同じに私をリダイレクトしますログインページ。私はこれで何が間違っているか教えてください。

+0

=>「admin other view」を返します。 =>リダイレクト::ルート( 'get.admin.dashBoard'); "管理者のその他のビュー"が返されると、コントロールがなくなり、2番目の 'return'行は実行されません –

答えて

0

ミドルウェアグループからremove web middlewareにすると動作します。 web.php(5.3)とroutes.php(5.2.27以降)内のすべてのルートに自動的に適用されます。手動で追加すると、セッション関連の機能が中断されます。

+0

My Laravel Frameworkバージョン5.2.45。 Webミドルウェアを削除すると、Session:flashを使ってフラッシュメッセージを表示することはできません。 –

+0

@pawankumarあなたのルートが 'routes.php'にある場合、' web'ミドルウェアを削除する必要があります。このミドルウェアは '5.2.27'以降のすべてのルートに自動的に適用されます。上記の答えのリンクをクリックしてください。 –

+0

私のルートのいくつかがauthを必要としないとします。 ?? –

関連する問題