2016-10-05 17 views
5

मैं अपनी वेबसाइट जो नोड सर्वर से रिटर्न पर कुछ डेटा प्रदर्शित कर रहा हूँ। यह आज तक पूरी तरह से काम करता है। अब जब मैं अपने वेब पेज पर जाता हूं तो मुझे अपने सर्वर कंसोल पर त्रुटि मिल रही है। मैं उन में प्रवेश द्वारा के लिए Auth0 का उपयोग करें।UnauthorizedError: अवैध एल्गोरिथ्म एक्सप्रेस-जेडब्ल्यूटी

UnauthorizedError: invalid algorithm 
    at C:\workspace\New\MyApp\node_modules\express-jwt\lib\index.js:100:22 
    at C:\workspace\New\MyApp\node_modules\express-jwt\node_modules\jsonwebtoken\index.js:155:18 
    at nextTickCallbackWith0Args (node.js:420:9) 
    at process._tickCallback (node.js:349:13) 

समस्या क्या हो सकती है?

उत्तर

4

मैं एक ही समस्या थी। मैं उपयोगकर्ताओं में साइनइन के लिए Auth0 का उपयोग करता हूं। आपको एल्गोरिदम प्रकार की जांच करनी है।

आप Auth0 उपयोग कर रहे हैं तो करने के लिए

क्लाइंट जाना -> सेटिंग्स -> उन्नत सेटिंग -> OAuth

और कलन विधि प्रकार की जाँच करें। यह एचएस 256 होना चाहिए।

यदि आप Auth0 का उपयोग नहीं कर रहे हैं तो एल्गोरिदम प्रकार भी देखें। क्योंकि यह सममित है, (एक ही गुप्त क्लाइंट और सर्वर के बीच साझा किया जाता है)

+1

धन्यवाद इस सवाल देखें। मेरा दिन बचा लिया – Bishan

1

HS256 कम सुरक्षित है। RS256 vs HS256: What's the difference?

आप हस्ताक्षर कुंजी को पुनः प्राप्त करने node-jwks-rsa मॉड्यूल का उपयोग करके RSA256 बनाए रख सकते हैं:

import jwt from 'express-jwt' 
import jwksRsa from 'jwks-rsa' 

const secret = jwksRsa.expressJwtSecret({ 
    cache: true, 
    rateLimit: true, 
    jwksRequestsPerMinute: 5, 
    jwksUri: 'https://<YOUR_AUTH0_DOMAIN>/.well-known/jwks.json', 
}) 

const jwtCheck = jwt({ 
    secret: secret, 
    audience: <YOUR_AUTH0_CLIENT_ID>, 
    issuer: 'https://<YOUR_AUTH0_DOMAIN>/', 
    algorithms: ['RS256'], 
}) 

app.use(jwtCheck) 
संबंधित मुद्दे