sharkey/packages/backend/src/server/api/endpoints/i/revoke-token.ts

33 lines
656 B
TypeScript
Raw Normal View History

import $ from 'cafy';
import define from '../../define';
import { AccessTokens } from '@/models/index';
import { ID } from '@/misc/cafy-id';
import { publishUserEvent } from '@/services/stream';
export const meta = {
requireCredential: true as const,
secure: true,
params: {
tokenId: {
2021-12-09 23:58:30 +09:00
validator: $.type(ID),
},
},
};
2022-01-03 02:12:50 +09:00
// eslint-disable-next-line import/no-default-export
export default define(meta, async (ps, user) => {
const token = await AccessTokens.findOne(ps.tokenId);
if (token) {
await AccessTokens.delete({
id: ps.tokenId,
userId: user.id,
});
// Terminate streaming
publishUserEvent(user.id, 'terminate');
}
});