From c34f711f0b63d8ef10db075bc0230e55d8b4dd98 Mon Sep 17 00:00:00 2001 From: Xeltica Date: Tue, 4 Aug 2020 20:11:14 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=9B=E3=82=B9=E3=83=88=E5=90=8D=E3=81=AE?= =?UTF-8?q?=E6=AD=A3=E8=A6=8F=E5=8C=96=E3=81=A8MiAuth=E4=BB=A5=E5=A4=96?= =?UTF-8?q?=E3=81=A7=E3=83=AD=E3=82=B0=E3=82=A4=E3=83=B3=E6=99=82=E3=81=AE?= =?UTF-8?q?=E3=83=A1=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8=E3=82=92=E5=BC=B7?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/router.ts b/src/router.ts index 1f361ef..b0a584e 100644 --- a/src/router.ts +++ b/src/router.ts @@ -17,11 +17,22 @@ router.get('/', async ctx => { }); router.get('/login', async ctx => { - const host = ctx.query.host as string | undefined; + let host = ctx.query.host as string | undefined; if (!host) { await die(ctx, 'ホストを空欄にしてはいけない'); return; } + const meta = await api<{ name: string, uri: string, features: Record }>(host, 'meta', {}); + + // MiAuth 以外はサポートしていない + if (!meta.features.miauth) { + await die(ctx, 'ごめんなさい。お使いのインスタンス "' + (meta.name || host) + '" はまだサポートされていません。現在、MiAuth 認証方式をサポートするバージョンの Misskey のみご利用頂けます。対象の Misskey バージョンは Misskey v12, Groundpolis v3 の最新版です。インスタンス管理者にご問い合わせください。'); + return; + } + + // ホスト名の正規化 + host = meta.uri.replace(/^https?:\/\//, ''); + const session = uuid(); const name = encodeURI('みす廃あらーと'); const permission = encodeURI('write:notes');