2017-02-08 13 views
5

मैं लैरवेल 5.3 & पासपोर्ट का उपयोग कर रहा हूं।लार्वा पासपोर्ट मार्ग लॉगिन पृष्ठ पर रीडायरेक्ट करता है

किसी भी मार्ग का परीक्षण करने के लिए पोस्टमैन का उपयोग करते समय मैंने api.php फ़ाइल में सेट किया है, यह हमेशा लॉगिन पेज देता है।

Route::get('/getKey', function() { 
    return 'hello'; 
})->middleware('client_credentials'); 

डाकिया पैरामीटर:: ': एपीआई प्रमाणन' एक और समाधान मैं जबकि जवाब के लिए खोज पाया प्रति मिडलवेयर

Accept application/json 
Authorization Bearer <then my key> 

मैं निर्धारित किया है यहाँ मेरी परीक्षण मार्ग का एक उदाहरण है।

protected function mapApiRoutes() 
    { 
     Route::prefix('api') 
      ->middleware('auth:api') 
      ->namespace($this->namespace) 
      ->group(base_path('routes/api.php')); 
    } 

मैंने दूसरों के लिए काम करने वाले हर समाधान की कोशिश की है लेकिन अभी भी कोई भाग्य नहीं है। किसी भी सुझाव को सराहा जाएगा।

अद्यतन तो मुझे अंततः काम करने के लिए कुछ मिला। मैंने उपभोक्ता ऐप बनाया और कुछ परीक्षण फ़ंक्शंस बनाए। मैं टोकन के सत्यापन के साथ एपीआई का उपभोग करने में सक्षम था। हालांकि, इस रूट को मारना अब मेरा लॉगिन पेज नहीं लौटाता है, लेकिन इसके बदले अब कुछ भी नहीं लौटाता है। तो यह अभी भी किसी भी कारण से काम नहीं कर रहा है।

Route::get('/user', function (Request $request) { 

    return $request->user(); 
})->middleware('client_credentials'); 

उत्तर

8

परिभाषित लॉगिन मार्ग के लिए पुनर्निर्देशन ऐप \ अपवाद \ हैंडलर.एफपी कक्षा में होता है।

protected function unauthenticated($request, AuthenticationException $exception) 
{ 
    if ($request->expectsJson()) { 
     return response()->json(['error' => 'Unauthenticated.'], 401); 
    } 

    return redirect()->guest(route('login')); 
} 

समारोह का पता लगाने के लिए कि क्या यह एक एपीआई से बुलाया जा रहा है की कोशिश करता है (यह जो मामले में यह JSON संदेश के साथ एक 401 अनधिकृत प्रतिक्रिया देता है) और टिप्पणियों के अनुसार नहीं तो यह प्रवेश पृष्ठ पर रीडायरेक्ट करेगा यह

एक अप्रमाणित प्रतिक्रिया

में एक प्रमाणीकरण अपवाद में कनवर्ट हेडर टैब पर अनुरोध क्लिक पर, डाकिया में समस्या को हल करने और जोड़ने के लिए:

key: Accept 
value: application/json 

मैं इस पर बहुत नया हूं इसलिए मुझे यकीन नहीं है कि यह एक हेडर है जिसे हमें पोस्टमैन के साथ सभी एपीआई कॉल का परीक्षण करते समय जोड़ना चाहिए या इस लार्वेल विधि को कैसे सेट किया गया है, इस बारे में सिर्फ एक नज़र डालें।

वैसे भी इस लॉगिन पृष्ठ पर पुनः निर्देशित किया जा रहा के साथ अपने मुद्दे को हल करेंगे, लेकिन यह एक संकेत है, जो आपके मौलिक प्रमाणीकरण अनुरोध अजाक्स से आता है कि क्या जांच करने के लिए

1

यह कोडित है काम नहीं कर रहा है।

{ 
"error": "Unauthenticated." 
} 

अन्यथा यह आप एक ब्राउज़र का उपयोग कर रहे हैं मान लेंगे और यह प्रमाणीकरण के लिए एचटीएमएल प्रवेश पृष्ठ पर रीडायरेक्ट करेगा: उस मामले में आप निम्नलिखित json अगर प्रमाणीकरण विफल प्राप्त होगा।

आप अपने अनुरोध के लिए निम्न शीर्ष लेख एक अजाक्स अनुरोध को दिखाने का कर सकते हैं: अपने हर अनुरोध के हेडर को: "वाहक YOUR_TOKEN प्राधिकरण"

X-Requested-With = XMLHttpRequest 
0

आप जोड़ने की जरूरत है। इसके अलावा, नवीनतम संस्करण Laravel 5.5 या ऊपर के लिए। हेडर का अनुरोध करने के लिए आपको "स्वीकार करें: एप्लिकेशन/जेसन" भी जोड़ना होगा।

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