我有一個管理多個域的laravel Web服務器,如:laravel跨域身份驗證cookie和過濾器
site1.domain.com, site2.domain.com, site3.domain.com
我有很大的成功加入網站名稱,用戶的認證過程,從而有每個用戶的單個表格就網站而言。跨網站沒有用戶的持久性,他們被認爲是獨一無二的。這很好。
對於每個站點,都有一個後端,例如。爲此,我有一組不同的模型管理員用戶。爲了使這項工作,我有一組完全不同的身份驗證路徑,一個不同的控制器和所有這些。我用下面的過濾器實現了這一點。
App::before(function($request)
{
if ($request->is('office*'))
{
Config::set('auth.driver', 'eloquent.admin');
Config::set('auth.model', 'Admin');
這些管理員在各個域之間很常見。也就是說,用戶名在管理模式中是唯一的。
這很好,但需要繼續前進。
我希望登錄和註銷在站點之間保持一致。也就是說,如果管理員登錄到一個站點辦公室,他們已經登錄了所有登錄,並且他們註銷了所有登錄,他們都已經註銷。
我試圖這樣來更新我的過濾器:
App::before(function($request)
{
if ($request->is('office*'))
{
Config::set('auth.driver', 'eloquent.admin');
Config::set('auth.model', 'Admin');
Config::set('session.path', '/office');
Config::set('session.domain', '.domain.com'); // tried without leading . too
}
});
但是,如果我分析了我的餅乾在我的瀏覽器,域和路徑信息並沒有受到影響,仍然是site.domain.com和/分別。
您能否告訴我如何根據我的要求更改會話cookie屬性?
有一個網站的依賴。儘管管理員和站點之間存在多對多的關係,這決定了管理員可以訪問特定站點的/辦公室。
我擔心的是管理員已登錄,他們將訪問任何網站辦公室。
我的意圖是編寫一個額外的過濾器「可以管理這個網站」,這將檢查關係。
您認爲這是適用於管理員提議的跨域身份驗證上下文的適當措施嗎?
如果您不介意所有用戶在網站之間共享,則可以將cookie域更改爲'.domain.com'。 其他選項是創建新的身份驗證警衛/模型,它會生成/檢查單獨的JWT cookie。 – Sigismund 2017-03-11 04:55:46