Экспресс не читает переданные заголовки на удаленном сервере из POSTMAN - PullRequest
0 голосов
/ 30 января 2019

Я разрабатываю мобильное приложение с Express в качестве бэкэнда.Я пытаюсь передать пользовательские заголовки для токена сеанса JWT и user_id. Это работает на локальном хосте, но не на сервере (с POSTMAN)

POSTMAN

Headers
   -> Content-Type  :  application/json
   -> session_token :  abc124...
   -> user_id       :  1

Express

app.js
    app.use(function (req, res, next) {
    res.setHeader("Access-Control-Allow-Origin", "*");
    res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
    res.setHeader("Access-Control-Allow-Headers", "DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,session_token,user_id,customer_id");
    res.header('Access-Control-Expose-Headers', 'session_token,user_id,customer_id');
    return next();
});

config / express.js

app.use('/api', function (req, res, next) {
    console.log(req.headers);

Это дает мне ответ:

{ 
connection: 'upgrade',
host: 'ec2-12-345-6-7.us-east-2.compute.amazonaws.com',
'user-agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
'cache-control': 'no-cache',
'postman-token': '6f5bc76d-1234-6543-53dd-95d103663535',
'content-type': 'application/json',
accept: '*/*',
'accept-encoding': 'gzip, deflate',
'accept-language': 'en-US,en;q=0.9,hi-IN;q=0.8,hi;q=0.7', 
cookie: 'connect.sid=s%3Aabcdef1674LFi1zH8-RZSxdViq_6_.4RdsxNrEw2LFGctE5By6A6e2K%2FcczWTtNeiIQJZJcvU' 
}

Я не вижу session_token ИЛИ user_id

На локальном хосте я вижу оба

Чего мне здесь не хватает?

РЕДАКТИРОВАТЬ:

Мой сервер узловработает на порту 3000 на экземпляре ec2 за nginx

Nginx

# Reverse proxy for web server
    location /api {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;

        # Preflighted requests
        if ($request_method = OPTIONS ) {
           add_header "Access-Control-Allow-Origin"  *;
           add_header "Access-Control-Allow-Credentials" true;
           add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS, HEAD, DELETE, PUT";
           add_header "Access-Control-Allow-Headers" "Authorization, Origin, X-Requested-With, Content-Type, Accept, session_token, user_id, customer_id";
           return 200;
        }
    }

Вызов входа в систему работает нормально и возвращает session_token (токен jwt), но когда я пытаюсь пройтиключ session_token в заголовках, похоже, что он куда-то упал до достижения express.js

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