Как установить файлы cookie в общедоступном домене / ip при размещении сервера koa на локальном хосте и использовании nginx в качестве обратного прокси-сервера?
etc / nginx / conf.d / 175.18.0.1.conf:
server {
listen 80;
listen [::]:80;
server_name 175.18.0.1;
location /auth {
proxy_pass http://localhost:3004/auth;
proxy_pass_header Set-Cookie;
proxy_cookie_domain localhost 175.18.0.1;
}
location /dashboard {
proxy_pass http://localhost:3002/dashboard;
proxy_pass_header Set-Cookie;
proxy_cookie_domain localhost 175.18.0.1;
}
}
Сервер аутентификации кода сервера узла (KoaJS):
router.get("/auth", passport.authenticate('github'), async function (ctx) {
ctx.cookies.set("mytoken1", "value 1", {domain: "175.18.0.1"});
ctx.cookies.set("mytoken2", "value 2");
ctx.redirect('http://175.18.0.1/dashboard')
}
Сервер панели мониторинга кода сервера узла (KoaJS):
router.get("/dashboard", async function (ctx) {
console.log(ctx.cookies.get("mytoken1"));
//output: undefined
console.log(ctx.cookies.get("mytoken2"));
//output: undefined
}
Ни один из этих файлов cookie не отображаетсяпод 175.18.0.1/dashboard
Я пытался использовать https://www.npmjs.com/package/cross-cookies, но пример кода, кажется, не работает должным образом.
Сначала это выдаст Внутреннюю ошибку сервера, но этона самом деле установит cookie на 175.18.0.1:
app.use(require('koa-cors')({
origin: "175.18.0.1",
credentials: true
}))
app.use(require('cross-cookies')())
app.keys = ['zippity', 'doo', 'da']
app.use(function *(next) {
this.crosscookies('token', 'some token');
})
Как я могу включить "this.crosscookies ('token', 'some token');" не как промежуточное ПО, а как способ установкикуки динамически, когда пользователь аутентифицирован после / auth?