mirror of
https://github.com/dadosfera/maestro.git
synced 2026-10-11 01:29:09 +00:00
UPDATE: Implementing MFA routes on maestro
This commit is contained in:
@@ -1,4 +1,14 @@
|
||||
import { Body, Controller, Post, UnauthorizedException } from '@nestjs/common';
|
||||
import {
|
||||
Body,
|
||||
Controller,
|
||||
Headers,
|
||||
Post,
|
||||
UnauthorizedException,
|
||||
} from '@nestjs/common';
|
||||
import {
|
||||
AuthEnableTotpMfaRequest,
|
||||
AuthVerifyTotpMfaRequest,
|
||||
} from '@victorradael/protospack';
|
||||
|
||||
import { AuthClientService } from 'src/clients/auth/client.service';
|
||||
import { ISignIn, IRefreshAccessToken } from 'src/clients/auth/interfaces';
|
||||
@@ -16,6 +26,13 @@ export class AuthController {
|
||||
}
|
||||
|
||||
@Post('login')
|
||||
async signIn_login(@Body() body: ISignIn) {
|
||||
console.log(`/auth`, 'SignIn_login');
|
||||
|
||||
return this.signIn(body);
|
||||
}
|
||||
|
||||
@Post('sign-in')
|
||||
async signIn(@Body() { username, password, totp }: ISignIn) {
|
||||
console.log(`/auth`, 'SignIn');
|
||||
|
||||
@@ -30,7 +47,9 @@ export class AuthController {
|
||||
}
|
||||
|
||||
@Post('refresh-access-token')
|
||||
async refreshAccessToken(@Body() { username, refreshToken }: IRefreshAccessToken) {
|
||||
async refreshAccessToken(
|
||||
@Body() { username, refreshToken }: IRefreshAccessToken,
|
||||
) {
|
||||
console.log(`/auth`, 'RefreshAccessToken');
|
||||
|
||||
const accessToken = await this.authClient
|
||||
@@ -42,4 +61,40 @@ export class AuthController {
|
||||
|
||||
return accessToken;
|
||||
}
|
||||
|
||||
@Post('enable-totp')
|
||||
async enableTotpMFA(
|
||||
@Body() { username, password }: AuthEnableTotpMfaRequest,
|
||||
) {
|
||||
console.log(`/auth`, 'enable-totp');
|
||||
|
||||
const enableTotpResponse = await this.authClient
|
||||
.enableTotpMFA({ username, password })
|
||||
.then((result) => result)
|
||||
.catch((err) => {
|
||||
throw new UnauthorizedException(err.message);
|
||||
});
|
||||
|
||||
return enableTotpResponse;
|
||||
}
|
||||
|
||||
@Post('verify-totp')
|
||||
async verifyTotp(
|
||||
@Body() body: AuthVerifyTotpMfaRequest,
|
||||
@Headers() headers,
|
||||
): Promise<any> {
|
||||
console.log(`/auth`, 'enable-totp');
|
||||
|
||||
const { username, totp } = body;
|
||||
const { Authorization } = headers;
|
||||
|
||||
const enableTotpResponse = await this.authClient
|
||||
.verifyTotp({ username, totp, accessToken: Authorization })
|
||||
.then((result) => result)
|
||||
.catch((err) => {
|
||||
throw new UnauthorizedException(err.message);
|
||||
});
|
||||
|
||||
return enableTotpResponse;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user