После завершения серверной части и тестирования приложения я попытался запустить его на сервере 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'
});
}
};
Мне кажется, что этот код вообще не запускается, так как сообщениячто я добавил, не отображаются в консоли.
Что не так с авторизацией?