Laravel 限制访问|根据用户角色更改模板或重定向
我在laravel应用程序上有AdminLTE,当管理员用户通过AdminLTE登录屏幕登录时,他登录到admin panel并访问其页面。没关系,当他打开前端网站时,管理员姓名会显示在标题上(如下图所示),因为他之前通过管理员登录屏幕登录 我想要的是,他不能登录网站首页。(标题上应显示以下内容,如下图所示)Laravel 限制访问|根据用户角色更改模板或重定向,laravel,acl,Laravel,Acl,我在laravel应用程序上有AdminLTE,当管理员用户通过AdminLTE登录屏幕登录时,他登录到admin panel并访问其页面。没关系,当他打开前端网站时,管理员姓名会显示在标题上(如下图所示),因为他之前通过管理员登录屏幕登录 我想要的是,他不能登录网站首页。(标题上应显示以下内容,如下图所示) 他需要在前台单独登录。解决方案是什么。好的,因此您必须在app.blade.php上生成菜单,并在其中生成if和else @if (!Auth::guest()) @incl
他需要在前台单独登录。解决方案是什么。好的,因此您必须在app.blade.php上生成菜单,并在其中生成if和else
@if (!Auth::guest())
@include('admin.includes.normal_header')
@endif
您需要制作两个中间件,一个是管理中间件,另一个是普通登录用户的中间件。
在普通中间件中,您可以检查用户是否以管理员身份登录。如果以管理员身份登录,则将其注销。有几种方法可以解决此问题:
role.php
Model步骤2:在用户表中添加一个名为“角色id”的列 步骤3:在
user.php
模型上为角色和用户建立关系
用户属于某个角色
//假设您有两个角色:1->Admin
,2->User
public function role(){
return $this->belongsTo(Role::class);
}
步骤3:在导航中,使用if-else条件
@if (!Auth::guest())
@if(auth()->user()->role()->id == 1)
@include('admin.admin_header_nav')
@else
@include('user.normal_header_nav')
@endif
@endif
// you can just use those condition on a link, or create a middleware
//called admin to wrap up the condition( auth()->user()->role()->id == 1 ),
// leaving it up to you
好吧,让我试试,我必须把它放在我前面的网站布局PaGeSo,在这种情况下,管理员用户仍然登录前端网站。我认为你希望用户登录前网站和管理员登录使用管理员登录页面,如果这是你需要做多个AUTH的情况下,你需要2个单独的警卫一个管理员和一个用户,guard将保护管理员访问用户页面和用户访问adminpages@dollar好的,如何制作护卫。你能写一封信吗answer@dollar,在我的情况下,管理员可以访问前端网站页面,但他不得登录前端网站。最好您使用代码更新您的问题,需要检查您到底在做什么?@dollar,我已经根据你的回答回答了每个问题,如果我注销了管理员,那么他仍然登录到管理员面板?不,管理员将完全注销。我希望他仍然登录到管理员面板