mirror of
https://github.com/roleypoly/roleypoly.git
synced 2025-04-24 19:39:11 +00:00
28 lines
870 B
TypeScript
28 lines
870 B
TypeScript
import { SessionData } from '@roleypoly/types';
|
|
import { discordAPIBase, respond, userAgent } from '@roleypoly/worker-utils';
|
|
import { formData, withSession } from '../utils/api-tools';
|
|
import { botClientID, botClientSecret } from '../utils/config';
|
|
import { Sessions } from '../utils/kv';
|
|
|
|
export const RevokeSession = withSession(
|
|
(session: SessionData) => async (request: Request) => {
|
|
const tokenRequest = {
|
|
token: session.tokens.access_token,
|
|
client_id: botClientID,
|
|
client_secret: botClientSecret,
|
|
};
|
|
|
|
await fetch(discordAPIBase + '/oauth2/token/revoke', {
|
|
method: 'POST',
|
|
headers: {
|
|
'content-type': 'application/x-www-form-urlencoded',
|
|
'user-agent': userAgent,
|
|
},
|
|
body: formData(tokenRequest),
|
|
});
|
|
|
|
await Sessions.delete(session.sessionID);
|
|
|
|
return respond({ ok: true });
|
|
}
|
|
);
|