Я строю остальные API, используя nodejs, express и mongodb. После успешного входа пользователя в систему я возвращаю jsonwebtoken клиенту в ответе, и expiredIn токена устанавливается в «30m» в файле .env.
Как создать новый токен refre sh, когда истекает срок действия старого токена. Как будто прошло 90% времени. В этот момент я хочу сгенерировать токен refre sh и отправить его обратно пользователю с кодом состояния 202. А также старый токен будет действителен в течение следующих 60-х годов, так что если клиент делает какой-либо запрос, когда токен истекает, получит срок действия 401.
В настоящее время я использую промежуточное программное обеспечение для проверки токена, передаваемого пользователем в заголовке, если он действителен или нет, или срок его действия истек, и все.
exports.validateToken = async (req, res, next) => {
let authorizationHeaader = req.headers['x-access-token'] || req.headers['authorization'];
if(authorizationHeaader){
if (authorizationHeaader.startsWith('Bearer ') || authorizationHeaader.startsWith('bearer ')) {
// Remove Bearer from string
var token = authorizationHeaader.slice(7, authorizationHeaader.length);
}
if (token) {
//Passing the token helpers for verification
global.Helpers.verifyToken(token)
.then(async jwtDecrept => {
req.body.user = jwtDecrept;
next();
}).catch(async err => {
//if No token not found or token expired will throw error in json response with status 401
return apiResponse.unauthorizedResponse(res, "Authentication error. Token has required", "");
});
} else {
//if No token found in header will throw error in json response with status 400
return apiResponse.validationErrorWithData(res, "Authentication error. Token is required", "");
}
}else {
//if no token passed in header will throw error in json response with status 401
return apiResponse.unauthorizedResponse(res, "Please pass a token in header", "");
}
}
Как я могу получить refre sh token logi c в этом промежуточном ПО, пожалуйста, предложите.