2016-01-22 6 views
1

Я пытаюсь использовать laravel 5.2 multi auth, но не работает. Я создал 2 охранника, admin и mhs. но я не могу войти в систему с mhs охранником. Когда я пытался войти в систему с защитой mhs, он всегда перенаправляется на эту регистрационную форму. И я пытался после этого How to use multi Auth in laravel 5.2laravel 5.2 multi auth не работает

это мой auth.php

гвардейской

'guards' => [ 
    'admin' => [ 
     'driver' => 'session', 
     'provider' => 'admin', 
    ],  

    'mhs' => [ 
    'driver' => 'session', 
    'provider' => 'mhs', 
], 

Provider

'providers' => [ 

'admin' => [ 
    'driver' => 'eloquent', 
    'model' => App\User::class, 
], 

'mhs' => [ 
    'driver' => 'eloquent', 
    'model' => App\Mahasiswa::class, 
], 
], 

Это мой routes.php

Route::group(['middleware' => ['web']], function() {  
Route::get('admin/login', '[email protected]'); 
Route::post('admin/login', '[email protected]'); 
Route::get('/logout', '[email protected]'); 

Route::get('mhs/login', '[email protected]'); 
Route::post('mhs/login', '[email protected]'); 
Route::get('/logout', '[email protected]'); 

}); 

Route::group(['middleware' => ['auth']], function() { 
Route::get('/home', '[email protected]'); 
Route::get('/mhs', '[email protected]'); 
Route::resource('mahasiswa', 'MahasiswaController'); 
}); 

и это мой LoginController

<?php 
namespace App\Http\Controllers; 

use Auth; 
use App\User; 
use App\Mahasiswa; 
use Illuminate\Support\Facades\Input; 

class LoginController extends Controller 
{ 


protected $username = 'username'; 

public function admingetLogin() 
{ 
    return view('auth.login'); 

} 
public function mhsgetLogin() 
{ 
    return view('mahasiswa.login'); 

} 
public function adminLogin(){ 
    $input = Input::all(); 
    if(count($input) > 0){ 
     $auth = auth()->guard('admin'); 

     $credentials = [ 
      'username' => $input['username'], 
      'password' => $input['password'], 
     ]; 

     if ($auth->attempt($credentials)) { 
      if(auth()->guard('admin')->check()){ 
     auth()->guard('admin')->user()->toArray(); 
     return redirect()->intended('/'); 
    } 
     } else { 
      echo 'Error'; 
     } 
    } else { 
     return view('auth.login'); 
    } 
} 


public function mhsLogin(){ 
    $input = Input::all(); 
    if(count($input) > 0){ 
     $auth = auth()->guard('mhs'); 

     $credentials = [ 
      'username' => $input['username'], 
      'password' => $input['password'], 
     ]; 

     if ($auth->attempt($credentials)) { 
      if(auth()->guard('mhs')->check()){ 
     auth()->guard('mhs')->user()->toArray(); 
     return redirect()->intended('/mhs'); 
     }     
     } else { 
      echo 'Error'; 
     } 
    } else { 
     return view('mhs.login'); 
    } 
} 

public function profile(){ 
    if(auth()->guard('admin')->check()){ 
     pr(auth()->guard('admin')->user()->toArray()); 
     return redirect()->intended('/'); 
    }   
    if(auth()->guard('mhs')->check()){ 
     pr(auth()->guard('mhs')->user()->toArray()); 
     return redirect()->intended('/'); 
    } 
} 
public function getLogout() 
{ 
    Auth::logout(); 

    return redirect()->intended('/'); 
} 
} 

я застрял на это в 4-х дней, Может кто-нибудь мне помочь? Было бы очень полезно, если бы кто-то мог решить проблемы.

ответ

0

Ваши охранники и поставщики услуг выглядят хорошо. Прежде всего, проверьте свой auth в одном охраннике. Возможно, у вас есть проблема с attempt. Используйте Auth::attempt для защиты по умолчанию. Вы можете проверить результат этого в

public function validateCredentials(UserContract $user, array $credentials) 

Это в vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php

Может быть проблема с проверкой пароля

+0

что я должен делать, когда я открываю 'поставщика/Laravel/рамки/Src/ILLUMINATE/Auth/EloquentUserProvider.php'? извините, я до сих пор не понимаю – AhmadHR

+0

Функция попытки сброса. Его возвращение истинно или ложно? – Olbrych

Смежные вопросы