Something went wrong. Try again.
because I got bored of customising my CV for every job
Something went wrong. Try again.
1.5 kB · 43 lines
TypeScript
1234567891011121314151617181920212223242526272829303132333435363738394041424344import { AuthCookieService } from "@cv/core";import { RequestMetadata } from "@cv/core";import { Controller, Post, Res } from "@nestjs/common";import type { Response } from "express";import { AuthenticationService } from "../authentication.service";import { RefreshTokenCookie } from "../token/refresh-token-cookie.decorator";import { RefreshTokenResponseDto } from "../token/refresh-token-response.dto";import { TokenExpiration } from "../token/token-expiration.type";
@Controller("api/auth")export class AuthenticationController { constructor( private readonly authenticationService: AuthenticationService, private readonly authCookieService: AuthCookieService, ) {}
@Post("credentials/refresh") async refreshToken( @RefreshTokenCookie() refresh_token: string, @RequestMetadata() requestMetadata: RequestMetadata, @Res({ passthrough: true }) res: Response, ): Promise<RefreshTokenResponseDto> { const result = await this.authenticationService.refreshToken( { refresh_token }, requestMetadata, );
this.authCookieService.setAuthCookies( res, result.access_token, result.refresh_token, );
const accessTokenExpiration = TokenExpiration.fromExpiryDate( result.expires_at, );
return new RefreshTokenResponseDto({ expiresAt: accessTokenExpiration.expiresAt.toISOString(), expiresInSeconds: accessTokenExpiration.expiresInSeconds, }); }}