mysql - 如何为laravel中的管理员进行自定义登录?
问题描述
我使用 laravel ui 进行身份验证。现在,我想自定义登录,只有管理员可以登录,否则,用户将被重定向到用户的登录页面。在用户表中的一列名称"is_admin"。如果 is_admin == 1 则返回管理面板,否则返回用户的登录页面。这是我的自定义登录方法
public function adminAuth(Request $request) {
$request->validate([
'email' => 'required',
'password' => 'required',
]);
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
$user = User::where('email', $request->email)->first();
if ($user->is_admin == 1) {
return redirect()->route('admin.home');
} else {
return redirect()->back()->with('error', 'Oppes! You have no permission ');
}
}
return redirect()->back()->with('error', 'Oppes! You have entered invalid credentials');
}
现在问题已经解决了
解决方案
我建议您将以下逻辑添加到redirectTo()
身份验证中间件的方法中,然后定义其他视图和控制器以进行管理员登录。
App\Http\Middleware\Authenticate
protected function redirectTo($request)
{
if (!$request->expectsJson() && Str::is('admin*', request()->path())) {
return route('admin.login');
}
if (!$request->expectsJson()) {
return route('login');
}
}
推荐阅读
- php - PHP 获取 MYSQL 行并分解为数组
- java - java中的多维数组有用吗?
- php - if语句变量为空时如何显示错误
- google-apps-script - 在多张纸上运行的脚本
- laravel-5.6 - 试图显示在 Laravel voyager 中插入的多张照片?
- javascript - 使 div 仅在悬停时滚动
- android - 带有 webhook 的 Android 应用
- python - 如何针对训练好的模型使用测试数据?
- python - TypeError:字符串索引必须是多处理池的整数
- javascript - 从 ViewPort 中停止视频 - 修复帮助:将 JavaScript 放在一起并修复 iPad 和 iPhone