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 = request.body; 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" ); } }