2016-10-05 5 views
5

Ich zeige einige Daten auf meiner Website an, die vom Knotenserver zurückkommen. Es funktioniert perfekt bis heute. Jetzt bekomme ich unter Fehler auf meiner Serverkonsole, wenn ich auf meine Webseite gehe. Ich benutze Auth0 für die Anmeldung von Benutzern.UnauthorizedError: ungültiger Algorithmus express-jwt

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) 

Was könnte das Problem sein?

Antwort

4

Ich hatte das gleiche Problem. Ich benutze Auth0 für die Anmeldung von Benutzern. Sie müssen den Algorithmustyp überprüfen.

Wenn Sie mit Auth0 dann gehen

Client -> Einstellungen -> Erweiterte Einstellungen -> OAuth

und prüfen Sie den Algorithmus-Typ. Es muss HS256 sein.

Wenn Sie nicht Auth0 verwenden, dann überprüfen Sie auch den Algorithmus-Typ.

+1

Danke. rettete meinen Tag. – Bishan

1

HS256 ist weniger sicher, weil es symmetrisch ist (das gleiche Geheimnis wird zwischen dem Client und dem Server geteilt). Sehen Sie diese Frage: RS256 vs HS256: What's the difference?

Sie RSA256 pflegen können die node-jwks-rsa Modul mithilfe der Signaturschlüssel abzurufen:

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)