我正在尝试在遇到问题的 Laravel 5.7 中实现用户注册系统。
我有两个用户表 - 管理员(通过复制默认 Laravel 身份验证创建)、新路由、新的管理员中间件。使用警卫时,一切正常。
我试图通过添加批准/拒绝功能来限制用户登录。
我在 Users 表中添加了一个额外的列 - admin(boolean)。
在登录控制器 - LoginController.php 页面中,我添加了
protected function authenticated($request, $user)
{
if ( $request->user()->admin != 1)
// if($user->admin != 1)
{
return redirect()->route('approval');
}
else
{
return redirect('/engineer');
}
}
因此,当管理员为 1 时,我被定向到“/engineer”,而在其他情况下,我被定向到“批准”。
它可以按需要工作!
我现在面临的问题是,如果我尝试使用未经批准的用户访问“工程师”,我可以访问该页面。我不确定如何限制它。该页面仍然仅限于公开。
由于用户和管理员都可以访问控制器,因此我在控制器中使用了 __construct
网页.php
Route::resource('engineer', 'engineerController');
工程师控制器.php
public function __construct()
{
$this->middleware('auth:web,admin');
}
我的理解是,仅在用户登录时以及退出后才检查该条件。
我是否需要创建一个新的中间件来保持授权页面的完整性?
我是一个自学者,并且是 laravel 的新手。我很确定我没有遵循正确的做法。我开始了一些事情,并试图遵循它直到我完成。请指导我完成它。
连同它,请让我怎样才能做得更好。