簡體   English   中英

Laravel 5 Rydurham / Sentinal:登錄后,基於組成員身份進行重定向

[英]Laravel 5 rydurham/sentinal: post-login, redirect based on group membership

我有一個使用Sentinal進行安全性的Laravel 5.1應用程序。 現在,我們僅使用兩個庫存組,即用戶和管理員。 最近,我邀請一位同事開始測試我的應用程序,因此為他創建了一個用戶。 我忘了將他添加到Admins組。 當他登錄時,由於身份驗證重定向將用戶引導到名為home的路由,因此無限重定向循環開始,但是如果您不在Admins中,則無法加載home,然后重定向回登錄。 這會將您重定向回首頁。

這是一條業務規則,我們只希望管理員使用應用程序中需要身份驗證的部分,但是如果您不是管理員,我們希望做些比發送403更友好的事情。 我想將“通過身份驗證的用戶”發送到特定的路由,甚至只是將他們重定向到靜態頁面。

我想我幾乎已經厭倦了Google,以獲取有關如何執行此操作的線索。 似乎這樣應該很容易。 我可以開始破解供應商代碼,但是我無法相信沒有更優雅的方法可以做到這一點。

抱歉,這是一個愚蠢的問題。 我是Laravel的新手。

好的,我已經開始工作了。 我寫了一塊叫做RedirectIfNotAdmin的中間件。

我找不到可以告訴我有關組成員身份的Sentry或Guard屬性/方法,因此我為用戶和組表制作了簡單明了的模型。 我在這些模型之間建立了多對多關系。 在中間件中,我使用Sentry來獲取用戶ID,並實例化自己的用戶模型之一。 在我的用戶模型中,我實現了一個isAdmin()方法,該方法獲取用戶的組,如果其中一個是“ Admins”,則返回true。

如果isAdmin()方法返回false,我將重定向到一個說明用戶沒有權限的頁面。

解決方案比我期望的要精巧得多。 我真的認為rydurham / sentinal可以解決這個問題。 也許Sentinal確實有更清潔的解決方案,但我實在太稠密而找不到它。 如果有人想評論解決這個問題的更好方法,我全都聽不清。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM