在laravel应用程序中,Auth::user()跨域返回null

在laravel应用程序中,Auth::user()跨域返回null,laravel,authentication,cookies,laravel-5.2,Laravel,Authentication,Cookies,Laravel 5.2,我在服务器a.com上托管了一个laravel应用程序,该应用程序处理在其他服务器上设置的其他laravel应用程序的所有身份验证,服务器1-app.com-对系统进行身份验证/用户管理,并将其存储在cookie中,发送到服务器2、3和4 server 2. mail.app.com server 3. fms.app.com server 4. dod.app.com 服务器2、3和4上有一个初始化函数,该函数尝试解码从服务器1跨域发送的cookie。看起来像这样 publ

我在服务器a.com上托管了一个laravel应用程序,该应用程序处理在其他服务器上设置的其他laravel应用程序的所有身份验证,服务器1-app.com-对系统进行身份验证/用户管理,并将其存储在cookie中,发送到服务器2、3和4

server 2. mail.app.com  
server 3. fms.app.com  
server 4. dod.app.com 
服务器2、3和4上有一个初始化函数,该函数尝试解码从服务器1跨域发送的cookie。看起来像这样

    public function initialize(){
      $mail = json_decode($logged_in_user_cookie)->email;
      $user = User::where('email', $mail)->first();    
      if(!$user){
        $user = new User;
        $user->email = $mail;
        $user->save();
      }
      Auth::login($user);

      if(Auth::check()){
      //dd($user); - works fine..
      return redirect()->route('dashboard');

      }else{
        echo 'user not logged in ';
      }

    }
服务器2、3和4也有users表,但没有密码,因此如果cookie命中其中任何一个服务器,系统将读取cookie并从cookie中提取用户对象,检查是否存在任何用户,创建用户,然后使用[Auth::login($user)]将用户登录到当前系统,如果用户已经存在。。它会自动登录用户

现在的问题是,在这条线上 return redirect()->route('dashboard');它会将您重定向到应用程序的仪表板页面,并且dd(Auth::user())-它返回null

我们无法弄清楚为什么它是这样工作的。因为Auth::user()应该可以在整个应用程序中使用,所以请想象一下google是如何工作的

google.com,-一次登录控制包括youtube在内的所有应用程序
drive.google.com、mail.google.com、play.google.com、news.google.com、plus.google.com、youtube.com-这就是我们正在尝试做的。

转到您的config/session.php并将此“cookie”=>“laravel_session”重命名为您的会话名称。例如“cookie”=>“foo_会话”。这应该行得通