32 lines
1.1 KiB
TypeScript
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 = 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" );
|
|
}
|
|
|
|
|
|
}
|