Php laravel 5.2多重身份验证不工作

Php laravel 5.2多重身份验证不工作,php,laravel,authentication,laravel-5.2,Php,Laravel,Authentication,Laravel 5.2,我正在尝试使用Laravel5.2多身份验证,但不起作用。我创造了两个守卫, admin和mhs。但是我不能用mhsguard登录。当我尝试使用mhs guard登录时,它总是重定向到该登录表单。我试着跟着这个 这是我的auth.php Route::group(['middleware' => ['web']], function () { Route::get('admin/login', 'LoginController@admingetLogin'); Route::p

我正在尝试使用Laravel5.2多身份验证,但不起作用。我创造了两个守卫,
admin
mhs
。但是我不能用
mhs
guard登录。当我尝试使用mhs guard登录时,它总是重定向到该登录表单。我试着跟着这个

这是我的
auth.php

Route::group(['middleware' => ['web']], function () {      
Route::get('admin/login', 'LoginController@admingetLogin');
Route::post('admin/login', 'LoginController@adminLogin');
Route::get('/logout', 'LoginController@getLogout');

Route::get('mhs/login', 'LoginController@mhsgetLogin');
Route::post('mhs/login', 'LoginController@mhsLogin');
Route::get('/logout', 'LoginController@getLogout');

});

Route::group(['middleware' => ['auth']], function () {
Route::get('/home', 'MahasiswaController@index');
Route::get('/mhs', 'MahasiswaController@mhs');
Route::resource('mahasiswa', 'MahasiswaController');
});
防护装置

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

     'mhs' =>  [
    'driver'   => 'session',
    'provider' => 'mhs',
],
提供商

'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', 'LoginController@admingetLogin');
Route::post('admin/login', 'LoginController@adminLogin');
Route::get('/logout', 'LoginController@getLogout');

Route::get('mhs/login', 'LoginController@mhsgetLogin');
Route::post('mhs/login', 'LoginController@mhsLogin');
Route::get('/logout', 'LoginController@getLogout');

});

Route::group(['middleware' => ['auth']], function () {
Route::get('/home', 'MahasiswaController@index');
Route::get('/mhs', 'MahasiswaController@mhs');
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('/');
}
}

您的守卫和提供者看起来不错。
首先,在一个保护中检查您的
auth
。可能您在尝试时遇到了问题。 对默认保护使用
Auth::trunt
。您可以在中查看此结果

 public function validateCredentials(UserContract $user, array $credentials)
这在
vendor/laravel/framework/src/illumb/Auth/EloquentUserProvider.php中

Route::group(['middleware' => ['web']], function () {      
Route::get('admin/login', 'LoginController@admingetLogin');
Route::post('admin/login', 'LoginController@adminLogin');
Route::get('/logout', 'LoginController@getLogout');

Route::get('mhs/login', 'LoginController@mhsgetLogin');
Route::post('mhs/login', 'LoginController@mhsLogin');
Route::get('/logout', 'LoginController@getLogout');

});

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

可能是检查密码有问题,你的守卫和提供者看起来不错。 首先,在一个保护中检查您的
auth
。可能您在尝试时遇到了问题。 对默认保护使用
Auth::trunt
。您可以在中查看此结果

 public function validateCredentials(UserContract $user, array $credentials)
这在
vendor/laravel/framework/src/illumb/Auth/EloquentUserProvider.php中

Route::group(['middleware' => ['web']], function () {      
Route::get('admin/login', 'LoginController@admingetLogin');
Route::post('admin/login', 'LoginController@adminLogin');
Route::get('/logout', 'LoginController@getLogout');

Route::get('mhs/login', 'LoginController@mhsgetLogin');
Route::post('mhs/login', 'LoginController@mhsLogin');
Route::get('/logout', 'LoginController@getLogout');

});

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

可能是检查密码有问题

当我打开
vendor/laravel/framework/src/illumb/Auth/EloquentUserProvider.php
时我必须做什么?抱歉,我仍然不了解转储尝试功能。它返回true还是false?当我打开
vendor/laravel/framework/src/illighte/Auth/EloquentUserProvider.php
时我必须做什么?抱歉,我仍然不了解转储尝试功能。它的回报是真还是假?