From 4bbb7eded3abf6045ef60971b21eed7d08afe946 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 28 Nov 2018 16:19:02 +0900 Subject: [PATCH] =?UTF-8?q?Cookie=E3=82=92=E4=BD=BF=E3=82=8F=E3=81=AA?= =?UTF-8?q?=E3=81=84=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/app/common/views/components/signin.vue | 3 ++- src/client/app/mios.ts | 4 ++-- src/client/app/safe.js | 8 -------- src/client/app/store.ts | 1 + src/server/api/common/signin.ts | 3 ++- 5 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/client/app/common/views/components/signin.vue b/src/client/app/common/views/components/signin.vue index c1a7522b00..dd3d979852 100644 --- a/src/client/app/common/views/components/signin.vue +++ b/src/client/app/common/views/components/signin.vue @@ -67,7 +67,8 @@ export default Vue.extend({ username: this.username, password: this.password, token: this.user && this.user.twoFactorEnabled ? this.token : undefined - }, true).then(() => { + }, true).then(res => { + localStorage.setItem('i', res.i); location.reload(); }).catch(() => { alert(this.$t('login-failed')); diff --git a/src/client/app/mios.ts b/src/client/app/mios.ts index 5ed4dfd4db..fad60f4137 100644 --- a/src/client/app/mios.ts +++ b/src/client/app/mios.ts @@ -190,8 +190,8 @@ export default class MiOS extends EventEmitter { this.store.dispatch('mergeMe', freshData); }); } else { - // Get token from cookie - const i = (document.cookie.match(/i=(!\w+)/) || [null, null])[1]; + // Get token from cookie or localStorage + const i = (document.cookie.match(/i=(!\w+)/) || [null, null])[1] || localStorage.getItem('i'); fetchme(i, me => { if (me) { diff --git a/src/client/app/safe.js b/src/client/app/safe.js index 026fc66c6e..3e2e5ae579 100644 --- a/src/client/app/safe.js +++ b/src/client/app/safe.js @@ -11,11 +11,3 @@ if (!('fetch' in window)) { 'Your browser (or your OS) seems outdated. ' + 'To run Misskey, please update your browser to latest version or try other browsers.'); } - -// Check whether cookie enabled -if (!navigator.cookieEnabled) { - alert( - 'Misskeyを利用するにはCookieを有効にしてください。' + - '\n\n' + - 'To use Misskey, please enable Cookie.'); -} diff --git a/src/client/app/store.ts b/src/client/app/store.ts index 0a16a71a2a..a498b0138f 100644 --- a/src/client/app/store.ts +++ b/src/client/app/store.ts @@ -129,6 +129,7 @@ export default (os: MiOS) => new Vuex.Store({ logout(ctx) { ctx.commit('updateI', null); document.cookie = `i=; domain=${hostname}; expires=Thu, 01 Jan 1970 00:00:01 GMT;`; + localStorage.removeItem('i'); }, mergeMe(ctx, me) { diff --git a/src/server/api/common/signin.ts b/src/server/api/common/signin.ts index ddfd5f2bba..45a42e288d 100644 --- a/src/server/api/common/signin.ts +++ b/src/server/api/common/signin.ts @@ -21,6 +21,7 @@ export default function(ctx: Koa.Context, user: ILocalUser, redirect = false) { ctx.redirect(config.url); } else { - ctx.status = 204; + ctx.body = { i: user.token }; + ctx.status = 200; } }