В настоящее время я пытаюсь передать сгенерированный токен для сброса пароля внутри моего незащищенного маршрута, но всякий раз, когда я выполняю свой запрос GET , я получаю 401 Unauthorized request
.
Я пытался включить пакет Path-to-RegExp и создать отдельный маршрут массива, но он не работал:
let tokens = [];
const unprotected = [
pathToRegexp('/user/reset/:token', tokens),
];
My сброс пароля токен создается в отдельной службе и вызывается в контроллере:
const token = crypto.randomBytes(20).toString('hex');
user.update({
resetPasswordToken: token,
resetPasswordExpires: Date.now() + 360000,
});
Вот как я структурировал свой expressJwt
с помощью unless
:
app.use(expressJwt({
secret: process.env.SECRET_BEARER,
getToken: req => {
MY TOKEN AUTHORISATION CODE IS PLACED HERE.
}
}).unless({ path: ['/images/', '/user/password-reset', unprotected ]}));
Моя проблема в том, что всякий раз, когда я пытаюсь создать маршрут без аутентификации, такой как .unless({path: ['/images/', '/user/password-reset', '/user/reset/:token' ]}));
, маршрут /user/reset/:token
анализируется только как строка, а значение :token
фактически не передается.
Я читал несколько похожих вопросов о передаче его с помощью регулярных выражений или функций, но сам не мог понять это. Этот и этот вопрос был особенно полезен при подходе к проблеме.