diff --git a/src/auth/AuthGuard.ts b/src/auth/AuthGuard.ts index da91bfe..15e5a46 100644 --- a/src/auth/AuthGuard.ts +++ b/src/auth/AuthGuard.ts @@ -2,9 +2,10 @@ import AuthProof from "./AuthProof"; import MysqlConnectionManager from "../db/MysqlConnectionManager"; import User from "./models/User"; import UserEmail from "./models/UserEmail"; +import {Connection} from "mysql"; export default abstract class AuthGuard

{ - public abstract async getProofForSession(sessionID: string): Promise

; + public abstract async getProofForSession(session: Express.Session): Promise

; public async getUserForSession(session: Express.Session): Promise { if (!await this.isAuthenticated(session)) return null; @@ -52,9 +53,9 @@ export default abstract class AuthGuard

{ } public async logout(session: Express.Session): Promise { - const proof = await this.getProofForSession(session.id); + const proof = await this.getProofForSession(session); if (proof) { - await proof.revoke(); + await proof.revoke(session); } session.auth_id = undefined; } @@ -62,7 +63,7 @@ export default abstract class AuthGuard

{ private async checkCurrentSessionProofValidity(session: Express.Session): Promise { if (typeof session.auth_id !== 'number') return false; - const proof = await this.getProofForSession(session.id); + const proof = await this.getProofForSession(session); if (!proof || !await proof.isValid() || !await proof.isAuthorized() || !await proof.isOwnedBy(session.auth_id)) { await this.logout(session); diff --git a/src/auth/AuthProof.ts b/src/auth/AuthProof.ts index a4a3220..a7a4e65 100644 --- a/src/auth/AuthProof.ts +++ b/src/auth/AuthProof.ts @@ -11,5 +11,5 @@ export default interface AuthProof { getEmail(): Promise; - revoke(): Promise; + revoke(session: Express.Session): Promise; } \ No newline at end of file