diff --git a/packages/auth/src/application/repositories/users-repository.interface.ts b/packages/auth/src/application/repositories/users-repository.interface.ts new file mode 100644 index 0000000..9e03e0a --- /dev/null +++ b/packages/auth/src/application/repositories/users-repository.interface.ts @@ -0,0 +1,7 @@ +import type { User } from "../../entities/user"; + +export interface IUsersRepository { + getUser(id: string): Promise; + getUserByUsername(username: string): Promise; + createUser(input: User): Promise; +} diff --git a/packages/auth/src/application/services/authentication-service.interface.ts b/packages/auth/src/application/services/authentication-service.interface.ts new file mode 100644 index 0000000..0e5f873 --- /dev/null +++ b/packages/auth/src/application/services/authentication-service.interface.ts @@ -0,0 +1,14 @@ +import type { Cookie } from "../../entities/cookie"; +import type { Session } from "../../entities/session"; +import type { User } from "../../entities/user"; + +export interface IAuthenticationService { + generateUserId(): string; + hashPassword(password: string): Promise; + verifyPassword(hash: string, password: string): Promise; + validateSession( + sessionId: string, + ): Promise<{ user: User; session: Session }>; + createSession(user: User): Promise<{ session: Session; cookie: Cookie }>; + invalidateSession(sessionId: string): Promise<{ blankCookie: Cookie }>; +}