簡體   English   中英

Laravel子域重定向登錄

[英]Laravel Subdomain Redirect With Login

我是一個相當新的堆棧溢出所以請在這里堅持我。

我正在創建一個具有以下鏈接的laravel項目......

main.dev(這是用於用戶的登錄,注冊和幫助部分)

athlete.main.dev(這是為運動員重定向到main.dev登錄)

coach.main.dev(這是為了將教練重定向到main.dev登錄)

以下是重定向用戶switch (User::getGroup()) { case 'Athlete': return Redirect::to(' http://athlete.main.dev '); case 'Coach': return Redirect::to(' http://coach.main.dev '); }的代碼switch (User::getGroup()) { case 'Athlete': return Redirect::to(' http://athlete.main.dev '); case 'Coach': return Redirect::to(' http://coach.main.dev '); } switch (User::getGroup()) { case 'Athlete': return Redirect::to(' http://athlete.main.dev '); case 'Coach': return Redirect::to(' http://coach.main.dev '); }

這工作正常,用戶根據其帳戶類型重定向,但在到達此子域時,用戶當前被迫再次登錄。

我一直在尋找大約三天試圖找到答案無濟於事。

是否可以根據main.dev的登錄信息在到達這些重定向時自動登錄用戶? 或者我如何跨子域共享會話數據?

謝謝你的幫助, - 尼克

我認為您需要一個SSO(單點登錄)功能來解決您的問題,因為您需要為不同服務器上的兩個應用程序提供服務,它只能通過SSO實現。 看一下這可能有助於解決您的問題 -

Laravel的良好單點登錄解決方案

解決問題的一種方法是將用戶名和密碼發送到要重定向的URL,並在子域中創建一個Auth :: attempt()。

switch (User::getGroup()) {
            case 'Athlete':
                return Redirect::to('http://athlete.main.dev')->with([
                'username' => $username,
                'password' => $password
                ]);
            case 'Coach':
                return Redirect::to('http://coach.main.dev')->with([
                'username' => $username,
                'password' => $password
                ]);;
       }

在你的控制器處理coach.main.devathlete.main.dev添加該你做任何事情之前

if(isset($username) && isset($password)){
    Auth::attempt(['username' => $username, 'password' => $password]);
}

暫無
暫無

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

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