dongwu1410
2016-11-05 05:40 阅读 24
已采纳

Laravel子域重定向登录

I am fairly new to stack overflow so please stick with me here.

I am creating a laravel project that has the following links...

main.dev (This is for login, registration, and help sections for the user)

athlete.main.dev (This is for athletes to be redirected to upon main.dev login)

coach.main.dev (This is for coaches to be redirect to upon main.dev login)

Here is an idea of what the code looks like to redirect the user switch (User::getGroup()) { case 'Athlete': return Redirect::to('http://athlete.main.dev'); case 'Coach': return Redirect::to('http://coach.main.dev'); }

This works fine and the user is redirected according to their account type, but upon arriving at this subdomain the user is currently forced to log in again.

I have been searching now for about three days trying to find the answer to no avail.

Is it possible to automatically login the user upon arriving at these redirects based off of main.dev's login information? Or how can I share the session data across subdomains?

Thanks for your help, -Nick

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    douzuqin3467 douzuqin3467 2016-11-05 11:23

    One way to solve you problem is by sending the username and password to the url you want to redirect and make an Auth::attemp() in the subdomain to.

    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
                    ]);;
           }
    

    In your controller that handles coach.main.dev and athlete.main.dev add this before you make anything else

    if(isset($username) && isset($password)){
        Auth::attempt(['username' => $username, 'password' => $password]);
    }
    
    点赞 评论 复制链接分享
  • dsh1956 dsh1956 2016-11-05 06:07

    I think you will require a SSO (Single Sign-on) feature to solve your problem as you need to serve both the applications on different server, it can only be achieved using SSO. Take a look at this it maybe helpful to solve your issue -

    Good single sign-on solution for Laravel

    点赞 评论 复制链接分享

相关推荐