summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/auth/session/userkey.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/endpoints/auth/session/userkey.ts')
-rw-r--r--src/server/api/endpoints/auth/session/userkey.ts98
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
- })
- };
-});