2017-11-22 64 views
5

में डोमेन पर शून्य वापस लौटाता है, मेरे पास एक सर्वर a.com पर होस्ट किया गया एक लार्वा एप्लिकेशन है, और यह एप्लिकेशन अन्य सर्वरों पर अन्य लार्वा अनुप्रयोग सेटअप के लिए सभी प्रमाणीकरणों को संभालता है, सर्वर 1 - app.com - प्रणाली और एक कुकी में यह स्टोर के लिए प्रमाणीकरण/उपयोगकर्ता प्रबंधन सर्वर 2,3 और 4 को भर में भेजे जाने के लिए करता है,Auth :: उपयोगकर्ता() एक लार्वेल एप्लिकेशन

server 2. mail.app.com 
server 3. fms.app.com 
server 4. dod.app.com 

वहाँ सर्वर 2,3 और 4 पर एक इनिशियलाइज़ समारोह है जो सर्वर से डोमेन पर भेजे गए कुकीज़ को डीकोड करने का प्रयास करता है। जो ऐसा कुछ दिखता है।

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 भी उन टेबल है लेकिन एक पासवर्ड के बिना, तो एक कुकी इन सर्वर के किसी भी दबाता है, प्रणाली कुकी को पढ़ता है और कुकी और जांच करता है कि किसी से उपयोगकर्ता वस्तु अर्क उपयोगकर्ता मौजूद है, उपयोगकर्ता बनाता है और फिर उपयोगकर्ता को वर्तमान सिस्टम में लॉगिन करने के लिए [Auth :: लॉगिन ($ उपयोगकर्ता)] का उपयोग करता है, और यदि उपयोगकर्ता पहले से मौजूद है .. यह स्वचालित रूप से उपयोगकर्ता में लॉग इन करता है ..

अब हमारे पास समस्या है, इस लाइन पर रिटर्न रीडायरेक्ट() -> मार्ग ('डैशबोर्ड'); यह आपको एप्लिकेशन के डैशबोर्ड पेज पर रीडायरेक्ट करता है, और डीडी (एथ :: उपयोगकर्ता()) - यह शून्य,

देता है और हम यह समझने में सक्षम नहीं हैं कि यह इस तरह से क्यों काम कर रहा है। चूंकि Auth :: उपयोगकर्ता(), पूरे एप्लिकेशन में उपलब्ध होना चाहिए, बस इसके बारे में सोचें कि Google कैसे काम करता है,

google.com, - एक लॉगिन यूट्यूब drive.google.com, मेल सहित प्रत्येक एप्लिकेशन को नियंत्रित करता है .google.com, play.google.com, news.google.com, plus.google.com, youtube.com - यही वह है जिसे हम करने की कोशिश कर रहे हैं।

उत्तर

2

अपनी कॉन्फ़िगर/session.php पर जाएं और इस 'कुकी' => 'laravel_session' को अपने सत्र के नाम पर पुनर्नामित करें। उदाहरण के लिए 'कुकी' => 'foo_session'। यह काम करना चाहिए।

संबंधित मुद्दे