php - 如何在 laravel 刀片模板中检查当前的身份验证守卫及其来宾?
问题描述
我正在做一个 Laravel 项目。我有 2 个身份验证警卫。这是我第一次使用多重身份验证保护。
通常在前端,我使用将访客和登录用户的代码分隔为:
@guest
//Data for Guest Users.
@endguest
@auth
//Data for Logged in Users.
@endauth
现在有了多个警卫,@guest 只有在我使用默认警卫登录系统时才为假。即,即使我通过“Admin Guard”登录,@guest 也处于活动状态。如何检查用户是否是 Admin Guard 的访客,或者用户是否通过 Admin Guard 登录?
解决方案
这取决于你的后卫的名字。通常 'web' 是 laravel 中的默认守卫。它将在 config 目录中的 auth.php 中提到:
defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
因此,当您检查 @guest 或 @auth 时,会检查“网络”的 Guard。要检查不同的守卫,比如“管理员”,您可以将其指定为:
@guest('admin')
//Data for Guest Users of admin guard.
@endguest
@auth('admin')
//Data for Logged in Users of admin guard.
@endauth
希望这对您的疑问有所帮助。如果您对此有任何疑问,请随时询问更多信息。还要确保在发布问题之前检查社区。因为类似的问题已经得到解答。
推荐阅读
- apache-spark - 在 Cassandra 中使用 Spark 插入数据
- c - 没有错误时 Visual Studio 不显示警告 (C++)
- swagger - 将 API Gateway Cloudformation 模板转换为 Swagger 文件
- python - 有没有办法将 main.py 文件放入文件夹中?
- excel - 具有多种复杂性的 IF 函数
- r - 如何在R中按组计算某些变量的比例?
- ruby - Ruby Terminal -e:根据 $_ 比较做出决定
- powershell - 在内联 PowerShell 脚本中访问 YAML 变量
- javascript - 动态创建的输入文件字段在 change() 调用时未在画布中显示图像
- tkinter - 在 Tkinter 窗口的标题中添加徽标