library-ts/node/users/handlers/logout.ts

32 lines
1.1 KiB
TypeScript

import { RegExpUtility } from "../../../browser/text/RegExpUtitlity";
import { CryptIO } from "../../crypt/CryptIO";
import { RJLog } from "../../log/RJLog";
import { RequestHandler, RequestType } from "../RequestHandler";
import { FastifyRequest, FastifyReply } from 'fastify';
import { VariableReplacer, Variables } from "../../../browser/text/replacing/VariableReplacer";
import { ConfirmSignUpHandler } from "./confirm-signup";
import { Session } from "../Session";
import { UserIsLoggedIn } from "../requirements/user/UserIsLoggedIn";
export class LogoutHandler extends RequestHandler
{
static url = "/logout";
constructor()
{
super( RequestType.POST, LogoutHandler.url, [ new UserIsLoggedIn() ] );
}
async _handle( request:FastifyRequest, reply:FastifyReply )
{
let requestBody = JSON.parse( request.body as string );
let tokenData = requestBody as { token:string };
let tokenID = tokenData.token;
this._ums._sessions.delete( tokenID );
this._ums.tokenDB._tokens.delete( tokenID );
return this.sendInfo( "Logout successfull" );
}
}