использование jwt с jwt-express с промежуточным программным обеспечением в экспресс js

На главной странице express-jwt добавьте функцию для получения веб-токена json из заголовка или запроса, который мы можно использовать в качестве экспресс-среднего износа, и это функция:

app.use(jwt({
secret: 'hello world !',
credentialsRequired: false,
getToken: function fromHeaderOrQuerystring (req) {
if (req.headers.authorization && req.headers.authorization.split(' ')
[0] === 'Bearer') {
    return req.headers.authorization.split(' ')[1];
} else if (req.query && req.query.token) {
  return req.query.token;
}
return null;
}
}));

И я использую express.Route() вот так:

app.use('/user',userRoute);
app.use('/apps',appsRouter);

Мой вопрос в том, как я могу использовать функцию getToken() или как я могу получить доступ к token при авторизации заголовка.

Заранее спасибо.


person MBehtemam    schedule 01.11.2017    source источник


Ответы (2)


Я думаю, если я не ошибаюсь, вам нужен токен или декодированный в ваших маршрутах. Вот как я это сделал.

У меня есть промежуточная функция, которая будет декодировать для меня токен, в котором есть информация о пользователе, а затем добавит декодированный объект к объекту req.

e.g route
.put('/update', Middleware.decodeToken, yourCallBackfunction)

decodeToken(req, res, next) {


            authorization = req.headers.authorization.replace('Bearer ', ''),
            decodeToken = Jwt.verify(authorization);
            //verifies the token

            req.tokenInfo = decodeToken
            next();
    }
person Renil Babu    schedule 01.11.2017

наконец я нахожу решение. с помощью промежуточного программного обеспечения (jwt) можно проверить токен в заголовке, и если он может быть установлен в req.user, то в req.user у нас есть вся информация об умершем jwt, согласно этому:

По умолчанию декодированный токен прикрепляется к req.user, но его можно настроить с помощью параметра requestProperty. jwt({ secret: publicKey, requestProperty: 'auth' });

person MBehtemam    schedule 01.11.2017