Php 使用登录进行Laravel子域重定向

Php 使用登录进行Laravel子域重定向,php,laravel,redirect,cookies,laravel-5.3,Php,Laravel,Redirect,Cookies,Laravel 5.3,我对stack overflow还比较陌生,所以请坚持我的观点 我正在创建一个具有以下链接的laravel项目 main.dev(用于用户的登录、注册和帮助部分) atternate.main.dev(用于运动员在登录main.dev时重定向到) coach.main.dev(用于登录main.dev时重定向到的coach) 下面是代码重定向用户的大致情况 开关(用户::getGroup()){ “运动员”一案: 返回重定向::到(“”); 案例“Coach”: 返回重定向::到(“”); }

我对stack overflow还比较陌生,所以请坚持我的观点

我正在创建一个具有以下链接的laravel项目

main.dev(用于用户的登录、注册和帮助部分)

atternate.main.dev(用于运动员在登录main.dev时重定向到)

coach.main.dev(用于登录main.dev时重定向到的coach)

下面是代码重定向用户的大致情况

开关(用户::getGroup()){
“运动员”一案:
返回重定向::到(“”);
案例“Coach”:
返回重定向::到(“”);
} 

这可以正常工作,用户会根据其帐户类型进行重定向,但在到达此子域后,用户当前将被迫再次登录

我已经搜索了大约三天,试图找到答案,但没有结果

是否可以根据main.dev的登录信息在到达这些重定向时自动登录用户?或者如何跨子域共享会话数据

谢谢你的帮助,
-Nick

我认为您需要一个SSO(单点登录)功能来解决您的问题,因为您需要在不同的服务器上为这两个应用程序提供服务,这只能通过SSO实现。看看这个,这可能有助于解决您的问题-


解决问题的一种方法是将用户名和密码发送到要重定向的url,并在子域中创建一个Auth::attemp()

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.dev
atternate.main.dev
的控制器中,在进行任何其他操作之前添加此项

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

这个页面在你的控制之下,我的意思是你可以在这里编码,对吗?子域被视为不同的域,因此你的登录不会持久化。选中此项@DsRaj我确实可以控制子域,并在路由组中使用中间件、域和命名空间来处理它。