server {
listen 80;
server_name api.myapp.local;
error_log logs/api.error.log notice;
access_log logs/api.access.log;
location / {
if ($request_method !~ ^(GET|HEAD|POST|OPTIONS)$ ) {
return 405;
}
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, HEAD, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Referer,Accept,Origin,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,X-HTTP-Method-Override,If-Modified-Since,Cache-Control,Content-Type,Cookie';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'POST') {
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, HEAD, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Referer,Accept,Origin,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,X-HTTP-Method-Override,If-Modified-Since,Cache-Control,Content-Type,Cookie';
add_header 'Access-Control-Max-Age' 1728000;
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, HEAD, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Referer,Accept,Origin,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,X-HTTP-Method-Override,If-Modified-Since,Cache-Control,Content-Type,Cookie';
add_header 'Access-Control-Max-Age' 1728000;
}
proxy_pass http://localhost:8081;
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;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
var app = express();
app.enable('trust proxy');
// ... ... ...
require('../common/webapp_session.js')(app, conf);
var iPort = process.env.PORT || conf.port;
app.listen(iPort);
console.log('API on port ' + iPort);
app.use(cookieParser());
console.log('** COOKIE SESSION');
console.log(conf.cookie);
app.use(session({
secret: conf.cookie.secret,
name: conf.cookie.name,
cookie: {secure: conf.cookie.secure, domain: conf.cookie.domain, maxAge: 1000*60*60*24}
}));
{ cookie:
{ path: '/',
_expires: Mon Jun 16 2014 23:24:06 GMT+0200 (Paris, Madrid (heure d’été)),
originalMaxAge: 86400000,
httpOnly: true,
secure: false,
domain: '.myapp.local' } }
$.ajax('http://api.myapp.local/login',
{
type: 'POST',
data: oForm.serialize(),
crossDomain: true,
xhrFields: {
withCredentials: true
},
success: function(res)
{
// ...
}
});
--
You received this message because you are subscribed to a topic in the Google Groups "Express" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/express-js/8f2OiL5IgrA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to express-js+...@googlegroups.com.
To post to this group, send email to expre...@googlegroups.com.
Visit this group at http://groups.google.com/group/express-js.
For more options, visit https://groups.google.com/d/optout.
Remote Address:127.0.0.1:80
Request URL:http://api.myapp.local/login
Request Method:POST
Status Code:200 OK
== Request Headers ==
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Content-Length:34
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Cookie:auth-token=s%3AzQIKK9ORZDxMALCUEdbAqVzO.mCcpuR4EFX22vUV7XSsVFZlMJy0HjPWzBFEDWGUqCzs
Host:api.myapp.local
Origin:http://myapp.local
Referer:http://myapp.local/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
== Form Data == URL encoded
email:de...@myapp.io
password:demo
== Response Headers ==
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Referer,Accept,Origin,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,X-HTTP-Method-Override,If-Modified-Since,Cache-Control,Content-Type,Cookie
Access-Control-Allow-Methods:GET, POST, HEAD, OPTIONS
Access-Control-Allow-Origin:http://myapp.local
Connection:keep-alive
Content-Length:16
Content-Type:application/json; charset=utf-8
Date:Tue, 17 Jun 2014 20:50:58 GMT
Server:nginx/1.7.1
Set-Cookie:auth-token=s%3A6etReaFh1Z6A8F2WnX4PBG09.vyN3YjodDafKMnM2YNtcJt37t9Jiw553I4ZaInpKnV4; Domain=.myapp.local; Path=/; Expires=Wed, 18 Jun 2014 20:50:58 GMT; HttpOnly
X-Powered-By:Express
email...@myapp.io
password:demo
== Response Headers ==
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Referer,Accept,Origin,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,X-HTTP-Method-Override,If-Modified-Since,Cache-Control,Content-Type,Cookie
Access-Control-Allow-Methods:GET, POST, HEAD, OPTIONS
Access-Control-Allow-Origin:http://myapp.local
Connection:keep-alive
Content-Length:16
Content-Type:application/json; charset=utf-8
Date:Tue, 17 Jun 2014 20:50:58 GMT
Server:nginx/1.7.1
Set-Cookie:auth-token=s%3A6etReaFh1Z6A8F2WnX4PBG09.vyN3YjodDafKMnM2YNtcJt37t9Jiw553I4ZaInpKnV4; Domain=.myapp.local; Path=/; Expires=Wed, 18 Jun 2014 20:50:58 GMT; HttpOnly
X-Powered-By:Express