Установить куки в публичном домене / ip при размещении сервера koa на localhost и использовании nginx в качестве обратного прокси? - PullRequest
0 голосов
/ 20 февраля 2019

Как установить файлы 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?

...