laravel5.1实现多用户认证多用户认证是laravel5.2及以上的新特性,laravel5.1没有。在laravel5.1中实现多用户认证需要下载multipleauth安装包这里我们使用/Kbwebs/MultiAuth安装包安装首先在composer.json中引入kbwebs/multiauth"require":{"kbwebs/multiauth":"~1.0"}然后,compoer更新,等待下载完成。身份验证首先,打开config/app.php,替换AuthServiceProvider这一行Illuminate\Auth\AuthServiceProvider::class->Kbwebs\MultiAuth\AuthServiceProvider::class然后,打开config/auth.php,更改下面的'driver'=>'eloquent''model'=>App\User::class,'table'=>'users'替换为'multi-auth'=>['admin'=>['driver'=>'eloquent','model'=>App\Http\Models\Admin::class,'table'=>'users'],'user'=>['driver'=>'eloquent','model'=>App\Http\Models\User::class,'table'=>'users']],当前auth.php的内容['user'=>['driver'=>'eloquent','model'=>App\Http\Models\User::class,'table'=>'users']],'password'=>['email'=>'emails.auth.password','table'=>'password_resets','expire'=>60,]];密码重置如果要重置密码,需要执行以下操作首先,打开config/app.php将Illuminate\Auth\Passwords\PasswordResetServiceProvider::class替换为Kbwebs\MultiAuth\PasswordResets\PasswordResetServiceProvider::classinApp\Http\Models\User.php将使用Illuminate\Auth\Passwords\CanResetPassword;使用Illuminate\Contracts\Auth\CanResetPassword作为CanResetPasswordContract;替换为使用Kbwebs\MultiAuth\PasswordResets\CanResetPassword;使用Kbwebs\MultiAuth\PasswordResets\Contracts\CanResetPassword作为CanResetPasswordContract;重新生成password_resettables表phpartisankbwebs:multi-reset:artisanmigrateUsage获取登录用户的信息Auth::user()->get();或Auth::user()->get()->角色;注意:有Auth::的地方需要改成Auth::user()否则会在EloquentUserProvider.phpline112:Undefinedindex:password中提示ErrorException找到AuthenticatesUsers.php把if(Auth::attempt($credentials,$request->has('remember')))在第50行{更改为if(Auth::user()->attempt($credentials,$request->has('remember'))){可以转载,请注明出处
