2016-10-05 11 views
5

Я показываю некоторые данные на своем веб-сайте, который возвращается с узла сервера. Он работает отлично до сегодняшнего дня. Теперь, когда я перехожу на свою веб-страницу, я становлюсь ниже ошибки на консоли своего сервера. Я использую Auth0 для входа в систему.UnauthorizedError: неверный алгоритм 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) 

В чем может быть проблема?

ответ

4

У меня была та же проблема. Я использую Auth0 для входа в пользователей. Вы должны проверить тип алгоритма.

Если вы используете Auth0 затем перейти к

Client -> Настройки -> Расширенные настройки -> OAuth

и проверьте тип алгоритма. Это должен быть HS256.

Если вы не используете Auth0, тогда также проверьте тип алгоритма.

+1

Спасибо. спас мой день. – Bishan

1

HS256 менее защищен, так как он симметричен (один и тот же секрет используется совместно клиентом и сервером). Смотрите этот вопрос: RS256 vs HS256: What's the difference?

Вы можете поддерживать RSA256 с помощью node-jwks-rsa модуля для получения ключа подписи:

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)