我一直在爲一家公司開發「單點登錄」框架,以便他們可以將他們的員工數據庫的四個副本合併到一個Intranet服務器上。我已經完成了功能,但後來遇到了一個需求問題。Laravel:分層身份驗證(「記住我」)
當他們去https://secure.example.com,他們希望一切都在身份驗證後,他們必須有「記住我」的功能,這是沒有問題的。但是,當他們轉到https://supersecure.example.com時,他們希望強制用戶對此單個會話進行「重新認證」。
我想也值得注意的是https://supersecure.example.com和https://secure.example.com是兩個獨立的laravel項目。
一個可比較的例子是您的手機讓您每次打開商店應用程序時輸入密碼。
TL; DR如何在特定路由上禁止Auth :: viaRemember()?
如果您使用單一登錄,那麼您在哪裏存儲remember_token? – Devon
https://github.com/mpociot/reauthenticate或https://github.com/pascalschwientek/laravel-reauth可能會給你一些想法 –
我不知道任何抽象的解決方案。這完全取決於您如何實現單點登錄功能。如果你正在分享一個會話,那麼只需在「secure.example.com」上有一個標誌標記爲「重新認證」並將其設置爲false,以及何時去「supersecure.example.com」,你可以檢查它是否爲false調用' Auth :: logout()'並重定向到再次登錄(然後將標誌設置爲true,如果你正在登錄supsersecure.example.com'但是這又取決於你如何實現的東西 – apokryfos