Я разрабатываю мобильное приложение с 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