Laravel - 客戶端使用者許可權閘道



訪客使用者許可權閘道功能是 2018 年 9 月釋出的最新 5.7 版本的附加功能。此功能用於為特定使用者啟動授權過程。

在 Laravel 5.6 中,有一個過程用於為未認證的使用者返回 **false**。在 Laravel 5.7 中,我們可以允許訪客進行授權檢查,方法是在指定的控制器中使用特定的 **nullable** 型別提示,如下所示:

<?php
Gate::define('view-post', function (?User $user) {
   // Guests
});

程式碼解釋

透過使用 **nullable** 型別提示,當將訪客使用者傳遞到許可權閘道時,$user 變數將為 null。然後,您可以根據需要進行授權決策。如果您允許空型別並返回 true,則訪客將擁有授權。如果您不使用空型別提示,則訪客將自動獲得 Laravel 5.7 的 403 響應,如下所示:

Nullable Type Hint

403 和 404 錯誤的區別在於,當用戶嘗試訪問未知資源或 URL 時會顯示 404 錯誤,而如上快照所示的 403 錯誤則是在未授權使用者訪問網站時顯示。

廣告