2017-03-10 17 views
9

सत्यापित नहीं कर सकता है इसलिए मेरे पास एक ग्राहक है जो PHP में है और PHP में बैकएंड है। पायथन क्लाइंट pyjwt का उपयोग कर रहा है और PHP सर्वर Firebase JWT का उपयोग कर रहा है।फायरबेस जेडब्ल्यूटी लाइब्रेरी पाइथन जेडब्ल्यूटी टोकन

जब php के भीतर एन्कोडिंग और डिकोडिंग टोकन सब कुछ ठीक काम करता है।

Firebase\JWT\SignatureInvalidException Object 
(
    [message:protected] => Signature verification failed 
    [string:Exception:private] => 
    [code:protected] => 0 
    [file:protected] => /var/www/vendor/firebase/php-jwt/src/JWT.php 
    [line:protected] => 110 
    ... 

एन्कोडिंग अजगर कोड

import jwt 
... 
payload = {'sub': self.client.id, 'exp': (datetime.now() + timedelta(days=1)).timestamp()} 
context['token'] = jwt.encode(payload, os.environ['JWT_KEY'], algorithm='HS256') 

निम्नलिखित और PHP कोड पीछा कर रहा है

है: लेकिन जब मैं अजगर से टोकन सांकेतिक शब्दों में बदलना और उन्हें Firebase पुस्तकालय PHP के साथ डिकोड एक त्रुटि देता है
$key = getenv("JWT_KEY"); 
return (array) \Firebase\JWT\JWT::decode($token, $key, array('HS256')); 

उत्तर

2

ठीक है, मुझे समस्या मिली। मुद्दा विभिन्न पक्षों द्वारा गुप्त कुंजी का उपयोग किया गया था। PHP द्वारा पढ़ने की कोशिश करते समय कुंजी को एक समस्या थी और यही कारण है कि यह विभिन्न टोकन बना रहा था। पुस्तकालय ठीक हैं, वे बिना किसी समस्या के एक-दूसरे के बीच संवाद कर सकते हैं।

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