From b397fe1c2ea27872b0c991726d78f81fa81f8f49 Mon Sep 17 00:00:00 2001
From: Akihiko Odaki <nekomanma@pixiv.co.jp>
Date: Mon, 26 Mar 2018 13:21:41 +0900
Subject: [PATCH] Specify Cookie domain with hostname

---
 src/api/common/signin.ts   | 2 +-
 src/web/app/common/mios.ts | 4 ++--
 src/web/app/config.ts      | 2 ++
 webpack.config.ts          | 1 +
 4 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/api/common/signin.ts b/src/api/common/signin.ts
index 693e62f39..ec3dd8030 100644
--- a/src/api/common/signin.ts
+++ b/src/api/common/signin.ts
@@ -4,7 +4,7 @@ export default function(res, user, redirect: boolean) {
 	const expires = 1000 * 60 * 60 * 24 * 365; // One Year
 	res.cookie('i', user.token, {
 		path: '/',
-		domain: `.${config.host}`,
+		domain: `.${config.hostname}`,
 		secure: config.url.substr(0, 5) === 'https',
 		httpOnly: false,
 		expires: new Date(Date.now() + expires),
diff --git a/src/web/app/common/mios.ts b/src/web/app/common/mios.ts
index 986630da2..582a46c4c 100644
--- a/src/web/app/common/mios.ts
+++ b/src/web/app/common/mios.ts
@@ -3,7 +3,7 @@ import { EventEmitter } from 'eventemitter3';
 import * as merge from 'object-assign-deep';
 import * as uuid from 'uuid';
 
-import { host, apiUrl, swPublickey, version, lang, googleMapsApiKey } from '../config';
+import { hostname, apiUrl, swPublickey, version, lang, googleMapsApiKey } from '../config';
 import Progress from './scripts/loading';
 import Connection from './scripts/streaming/stream';
 import { HomeStreamManager } from './scripts/streaming/home';
@@ -220,7 +220,7 @@ export default class MiOS extends EventEmitter {
 
 	public signout() {
 		localStorage.removeItem('me');
-		document.cookie = `i=; domain=.${host}; expires=Thu, 01 Jan 1970 00:00:01 GMT;`;
+		document.cookie = `i=; domain=.${hostname}; expires=Thu, 01 Jan 1970 00:00:01 GMT;`;
 		location.href = '/';
 	}
 
diff --git a/src/web/app/config.ts b/src/web/app/config.ts
index 24158c3ae..32710dd9c 100644
--- a/src/web/app/config.ts
+++ b/src/web/app/config.ts
@@ -1,4 +1,5 @@
 declare const _HOST_: string;
+declare const _HOSTNAME_: string;
 declare const _URL_: string;
 declare const _API_URL_: string;
 declare const _DOCS_URL_: string;
@@ -16,6 +17,7 @@ declare const _LICENSE_: string;
 declare const _GOOGLE_MAPS_API_KEY_: string;
 
 export const host = _HOST_;
+export const hostname = _HOSTNAME_;
 export const url = _URL_;
 export const apiUrl = _API_URL_;
 export const docsUrl = _DOCS_URL_;
diff --git a/webpack.config.ts b/webpack.config.ts
index 1fa18d287..f7e7ae39c 100644
--- a/webpack.config.ts
+++ b/webpack.config.ts
@@ -84,6 +84,7 @@ module.exports = entries.map(x => {
 		_CH_URL_: config.ch_url,
 		_LANG_: lang,
 		_HOST_: config.host,
+		_HOSTNAME_: config.hostname,
 		_URL_: config.url,
 		_LICENSE_: licenseHtml,
 		_GOOGLE_MAPS_API_KEY_: config.google_maps_api_key