【问题标题】:Is there a way to hide certain part of a web page based on a custom guard with Laravel?有没有办法基于 Laravel 的自定义保护来隐藏网页的某些部分?
【发布时间】:2020-04-13 12:52:37
【问题描述】:

我知道你可以限制控制器功能访问

public function __construct(){
        $this->middleware('auth');
    }

但这控制了对整个网页或刀片文件的访问。

我想仅向基于自定义防护的某些用户(例如管理员)显示网站的某些部分。我知道您可以使用@auth@guest 进行正常授权,但是有没有办法为新警卫做同样的事情?

(对不起,如果愚蠢的问题)

【问题讨论】:

    标签: html laravel web authorization laravel-blade


    【解决方案1】:

    当然你可以在刀片内部使用简单的控制结构 https://laravel.com/docs/5.8/blade#control-structures

    这些可以检查任何东西,包括警卫。

    可以按照您自己的建议使用包含的刀片指令添加身份验证保护:

    @auth('admin')
        // The user is authenticated...
    @endauth
    
    @guest('admin')
        // The user is not authenticated...
    @endguest
    

    或者如果你想要别的东西,你可以扩展刀片,并定义一个自己的指令 像@isSuperAdmin 或其他什么

    https://laravel.com/docs/5.8/blade#extending-blade

    【讨论】:

      【解决方案2】:

      试试这个..

      @if(auth()->guard('guard_name')->check()) ………… @endif

      这样您就可以向特定用户展示某个部分。

      【讨论】:

        猜你喜欢
        • 2020-12-10
        • 2013-04-06
        • 2016-12-07
        • 2019-07-01
        • 2019-02-19
        • 2021-05-09
        • 2012-12-22
        • 1970-01-01
        • 2015-06-12
        相关资源
        最近更新 更多