के साथ लॉगआउट समस्या मैं अपने एपीआई में एक विश्वसनीय ऑथ संसाधन बनाने के लिए jwt-auth का उपयोग कर रहा हूं। जब कोई क्लाइंट ऐप लॉगिन संसाधन को कॉल करता है, तो केस उपयोगकर्ता लॉग होता है, तो आपका वर्तमान टोकन अमान्य होना चाहिए और इसलिए एक नया टोकन जेनरेट किया जाना चाहिए।लैरावेल जेडब्ल्यूटी-ऑथ प्रमाणीकरण
लेकिन वर्तमान टोकन को ब्लैकलिस्ट किया गया है TokenBlacklistedException
फेंक दिया गया है।
टोकन को ब्लैकलिस्ट किए जाने पर कैसे सत्यापित किया जाए? या उपयोगकर्ता को "लॉगआउट" को कार्यान्वित करने के लिए कैसे सही करें? मैं jwt-auth API स्रोत पर खोजने का प्रयास करता हूं लेकिन getToken()->isBlacklisted()
या parseToken()->isBlacklisted()
या इसे लागू करने के लिए कुछ वैधकर्ता मौजूद नहीं है।
कभी टोकन अमान्य parseToken() एक टोकनब्लैकलिस्टेड अपवाद फेंकता है, इसलिए एक हैकलिस्ट सूची विधि टोकन को अमान्य करने से पहले मान्य है या नहीं, यह सत्यापित करने का एक अच्छा तरीका है।
जानकारी:
bellow कोड सत्यापित करें कि पेलोड अमान्य है, TokenBlacklistedException
फेंक दिया है, तो अमान्य है:
if(
false === \Tymon\JWTAuth\Blacklist::has(
\Tymon\JWTAuth\Facades\JWTAuth::getPayload($token)
)
) {
\Tymon\JWTAuth\Facades\JWTAuth::parseToken()->invalidate();
}
कैसे लगाएं कि तरह:
if(false ===\Tymon\JWTAuth\Facades\JWTAuth::parseToken()->isBlacklisted()) {
// invalidate...
}
लेकिन मेरे मामले में, मैं परीक्षण करता हूं कि Angular.js ऐप एक अवैध टोकन भेजता है, इसलिए यदि अमान्य है 'JWTAuth :: अमान्य है (JWTAuth :: getToken()):' टोकनब्लैकलिस्टेड अपवाद को फेंक देगा या कहेंगे कि एक अवैध टोकन । मुझे अमान्य होने से पहले, सत्यापित करें कि यह पहले से ही किया जा चुका है या नहीं। – Maykonn
या जब मैं एक कालबाह्य टोकन को अमान्य करने का प्रयास करता हूं तो TokenExpiredException फेंकता है ... – Maykonn
मैंने यह दिखाने के लिए अपना उत्तर अपडेट किया कि मैं इसे कैसे प्रबंधित कर रहा हूं –