From 62dede02eaf93a6ca08983bbf84a8a71e67fa6eb Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Sun, 18 Jul 2021 00:53:16 +0900 Subject: API AuthenticateでDB接続エラーなどが発生するとログアウトさせられてしまうのを修正 Fix #7603 (#7604) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/api/authenticate.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/server/api/authenticate.ts') diff --git a/src/server/api/authenticate.ts b/src/server/api/authenticate.ts index 6ea5a111bc..bba4db4ace 100644 --- a/src/server/api/authenticate.ts +++ b/src/server/api/authenticate.ts @@ -8,7 +8,14 @@ import { Cache } from '@/misc/cache'; // ref. https://github.com/typeorm/typeorm/blob/master/docs/caching.md const cache = new Cache(1000 * 60 * 60); -export default async (token: string): Promise<[User | null | undefined, AccessToken | null | undefined]> => { +export class AuthenticationError extends Error { + constructor(message: string) { + super(message); + this.name = 'AuthenticationError'; + } +} + +export default async (token: string): Promise<[User | null | undefined, App | null | undefined]> => { if (token == null) { return [null, null]; } @@ -24,7 +31,7 @@ export default async (token: string): Promise<[User | null | undefined, AccessTo .findOne({ token }); if (user == null) { - throw new Error('user not found'); + throw new AuthenticationError('user not found'); } cache.set(token, user); @@ -41,7 +48,7 @@ export default async (token: string): Promise<[User | null | undefined, AccessTo }); if (accessToken == null) { - throw new Error('invalid signature'); + throw new AuthenticationError('invalid signature'); } AccessTokens.update(accessToken.id, { -- cgit v1.2.3-freya