2016-03-04 126 views
0

我正在开发一个应用程序,它在laravel 5.2上有两种类型的用户,用户和管理员。我的问题是,这个仇恨永远不会成功。Multi auth laravel 5.2,验证不起作用

我改变配置/ AUTH到:

return [ 

'defaults' => [ 
    'guard' => 'user', 
    'passwords' => 'user', 
], 

'guards' => [ 
    'user' => [ 
     'driver' => 'session', 
     'provider' => 'users', 
    ], 
    'admin' => [ 
     'driver' => 'session', 
     'provider' => 'admins', 
    ], 
], 

'providers' => [ 
    'users' => [ 
     'driver' => 'eloquent', 
     'model' => App\User::class, 
    ], 
    'admins' => [ 
     'driver' => 'eloquent', 
     'model' => App\Admin::class, 
    ], 
], 

'passwords' => [ 
    'user' => [ 
     'provider' => 'users', 
     'email' => 'auth.emails.password', 
     'table' => 'password_resets', 
     'expire' => 60, 
    ], 
    'admin' => [ 
     'provider' => 'admins', 
     'username' => 'auth.username.password', 
     'table' => 'password_resets', 
     'expire' => 60, 
    ], 
], 

];

型号联系(用户模式是除了表中, '用户' 相同):

namespace App; 
use Illuminate\Foundation\Auth\User as Authenticatable; 

class Admin extends Authenticatable 
{ 
    public $timestamps = False; 
    protected $table = 'admins'; 
    protected $fillable = [ 
     'name', 'username', 'password', 
    ]; 

    protected $hidden = [ 
     'password', 'remember_token', 
    ]; 
} 

控制器管理:

public function auth(Request $request) { 
    $credentials = $request->except('_token'); // "username" => "ewfer" "password" => "fwerfwegf" 

    if(!Auth::guard('admin')->attempt($credentials)) { // always enters here, even with the right details 
     Session::flash('flash_error', 'Something went wrong with your login'); 
     return redirect(url('/admin/login')); 
    } 
    return redirect('/admin'); 
} 

我的管理员表的默认值:

Schema::create('admins', function (Blueprint $table) { 
     $table->increments('username'); 
     $table->string('password'); 
     $table->rememberToken(); 
    }); 
DB::table('admins')->insert([ 
     'username' => 'miguel', 
     'password' => Hash::make('password'), 
    ]); 

请注意,对于管理员登录,我们需要用户名,而不是用于用户登录的电子邮件。

回答

0

嗯,我发现这个问题,这是一个非常愚蠢的,对此感到抱歉。问题是这条线$table->increments('username');,我没有注意到什么被存储在BD中,它是一个int(1)而不是“miguel”。除此之外,一切都很完美