简体   繁体   中英

Laravel Subdomain Redirect With Login

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

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM