我对堆栈溢出相当新,所以请在这里坚持下去。
我正在创建一个具有以下链接的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');
}
此工作正常,用户根据其帐户类型重定向,但在到达此子域时,用户当前被迫再次登录。
我一直在寻找大约三天试图找到答案无济于事。
是否可以根据main.dev的登录信息在到达这些重定向时自动登录用户?或者我如何跨子域共享会话数据?
感谢您的帮助, -Nick
答案 0 :(得分:2)
我认为您需要 SSO(单点登录)功能来解决您的问题,因为您需要同时为不同服务器上的应用程序提供服务,它只能通过SSO实现。看一下这可能有助于解决您的问题 -
答案 1 :(得分:1)
解决问题的一种方法是将用户名和密码发送到要重定向的网址,并在子网域中创建一个Auth :: attempt()。
z
在处理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
的控制器中,在您制作其他内容之前添加此内容
athlete.main.dev