我在laravel中进行多重身份验证时遇到问题
我要路线
/admin/login
,我只需要在此路由中进行管理员登录,然后重定向到/admin
,如果用户登录,我将重定向到/home
,使味精由于您的用户而无法访问此链接,不是管理员
我登录/admin/login
并以用户身份重定向到/home
时出现问题,但我需要重定向/admin
在数据库(用户)中知道管理员和用户相同的表退出col boolean isAdmin (1 for admin and 0 for user)
知道我要退出Auth\AdminLoginController
:
protected $redirectTo = '/admin';
public function __construct()
{
$this->middleware('guest:admin')->except('logout');
}
public function Loginadmin()
{
return view('auth.login');
}
public function adminLogin(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|min:6'
]);
if (Auth::guard('admin')->Where("isAdmin" , 1)->attempt(['email' => $request->email, 'password' => $request->password, 'isAdmin' => 1], $request->get('remember'))) {
return redirect()->intended('/admin');
}
return back()->withInput($request->only('email', 'remember'));
}
答案 0 :(得分:0)
您必须创建一个中间件。你的溃败就是这样写的。
Route::get('Dashboard', 'admin\DashboardController@index')->middleware('adminUser');
或在构造函数中编写
它的结构
<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
class adminUser
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(Auth::check())
{
$userm = auth()->user();
if($userm->isadmin!=1)
{
return redirect('');
}
return $next($request);
}
else
return redirect('');
}
}
您必须创建一个值来确定用户表中的访问级别