具有相同角色的身份验证用户与Guard Laravel相同
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了具有相同角色的身份验证用户与Guard Laravel相同相关的知识,希望对你有一定的参考价值。
我在laravel中使用两种不同的防护措施:'admin'和'web',对于admin,我有两个不同角色的用户('administrador'和'tecnico')。我想检查已通过admin身份验证的用户的角色名称,但我应该犯一个错误,因为它仅在使用role_id且没有角色名称时才起作用(两者都是Role Table中的属性,id(pk))。
此设置有效:
@if( Auth::guard('admin')->user()->role_id=="1") ... @endif
此设置无法正常工作:
@if( Auth::guard('admin')->user()->role-name="administrador") ... @endif.
@if( Auth::guard('admin')->user()->role->name="tecnico") ... @endif.
我已经打印了所有设置,并且它们具有正确的属性值,我猜想laravel仅检查它们是否经过了身份验证以作为警卫,但是当我使用ID号时,实际上它让我根据登录的用户角色进行控制。
答案
我认为它的语法错误。只有=是赋值运算符。对匹配角色使用==
@if( Auth::guard('admin')->user()->role->name=="administrador") ... @endif.
@if( Auth::guard('admin')->user()->role->name=="tecnico") ... @endif.
并且下面的句子非常有效,因为在用户表中也存在role_id
@if(Auth :: guard('admin')-> user()-> role_id ==“ 1”)... @endif希望这项工作
以上是关于具有相同角色的身份验证用户与Guard Laravel相同的主要内容,如果未能解决你的问题,请参考以下文章
Vue + Pinia + Firebase 身份验证:在 Route Guard 之前获取 currentUser
相同的 URL 路径,但根据用户角色加载不同的组件 - Angular
具有角色的经过身份验证的用户的 Spring Security Java 配置