diff options
Diffstat (limited to 'src/server/api/endpoints/auth/session/userkey.ts')
| -rw-r--r-- | src/server/api/endpoints/auth/session/userkey.ts | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/src/server/api/endpoints/auth/session/userkey.ts b/src/server/api/endpoints/auth/session/userkey.ts deleted file mode 100644 index 72201cb207..0000000000 --- a/src/server/api/endpoints/auth/session/userkey.ts +++ /dev/null @@ -1,98 +0,0 @@ -import $ from 'cafy'; -import define from '../../../define'; -import { ApiError } from '../../../error'; -import { Apps, AuthSessions, AccessTokens, Users } from '@/models/index'; - -export const meta = { - tags: ['auth'], - - requireCredential: false as const, - - params: { - appSecret: { - validator: $.str, - }, - - token: { - validator: $.str, - } - }, - - res: { - type: 'object' as const, - optional: false as const, nullable: false as const, - properties: { - accessToken: { - type: 'string' as const, - optional: false as const, nullable: false as const, - }, - - user: { - type: 'object' as const, - optional: false as const, nullable: false as const, - ref: 'User', - }, - } - }, - - errors: { - noSuchApp: { - message: 'No such app.', - code: 'NO_SUCH_APP', - id: 'fcab192a-2c5a-43b7-8ad8-9b7054d8d40d' - }, - - noSuchSession: { - message: 'No such session.', - code: 'NO_SUCH_SESSION', - id: '5b5a1503-8bc8-4bd0-8054-dc189e8cdcb3' - }, - - pendingSession: { - message: 'This session is not completed yet.', - code: 'PENDING_SESSION', - id: '8c8a4145-02cc-4cca-8e66-29ba60445a8e' - } - } -}; - -export default define(meta, async (ps) => { - // Lookup app - const app = await Apps.findOne({ - secret: ps.appSecret - }); - - if (app == null) { - throw new ApiError(meta.errors.noSuchApp); - } - - // Fetch token - const session = await AuthSessions.findOne({ - token: ps.token, - appId: app.id - }); - - if (session == null) { - throw new ApiError(meta.errors.noSuchSession); - } - - if (session.userId == null) { - throw new ApiError(meta.errors.pendingSession); - } - - // Lookup access token - const accessToken = await AccessTokens.findOneOrFail({ - appId: app.id, - userId: session.userId - }); - - // Delete session - AuthSessions.delete(session.id); - - return { - accessToken: accessToken.token, - user: await Users.pack(session.userId, null, { - detail: true - }) - }; -}); |