Создайте токен refre sh, когда срок действия токена истекает в node js - PullRequest
0 голосов
/ 28 марта 2020

Я строю остальные 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 в этом промежуточном ПО, пожалуйста, предложите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...