Авторизация в приложении, развертываемом на Heroku с использованием JWT Token - PullRequest
0 голосов
/ 24 сентября 2019

После завершения серверной части и тестирования приложения я попытался запустить его на сервере Heroku.Локальная регистрация и получение всех сообщений работают.
Мой App Warbler
На сервере Heroku работает только регистрация, после успешной регистрации токен отправляется клиенту.Для получения сообщений клиент добавляет токен в тело запроса.Сервер отвечает, что я не авторизован:

2019-09-24T08:22:02.047721+00:00 heroku[router]: at=info method=GET path="/api/messages" host=warbler-server-md.herokuapp.com request_id=849b48c9-caa9-4e7c-b38c-b614988b88e4 fwd="178.159.232.145,3.88.204.168" dyno=web.1 connect=1ms service=2ms status=401 bytes=293 protocol=https

Наиболее вероятная проблема - аутентификация токена:

exports.ensureCorrectUser = function(req, res, next) {
    try {
        const token = req.headers.authorization.split(' ')[1];
        jwt.verify(token, process.env.SECRET_KEY, function(err, decoded) {
            console.log("token", token);
            console.log("decoded", decoded);
            if (decoded && decoded.id === req.params.id) {
                return next();
            } else {
                console.log(err);
                return next({
                    status: 401,
                    message: 'Unauthorized'
                });
            }
        });
    } catch (error) {
        console.log('Unauthorized!');
        next({
            status: 401,
            message: 'Unauthorized'
        });
    }
};

Мне кажется, что этот код вообще не запускается, так как сообщениячто я добавил, не отображаются в консоли.

Что не так с авторизацией?

...