fix api doc for auth endpoints
This commit is contained in:
parent
7c30574bf2
commit
fdcc9fda3f
@ -1,20 +1,30 @@
|
|||||||
import { Controller, Request, Post, UseGuards } from '@nestjs/common';
|
import { Controller, Request, Post, UseGuards } from '@nestjs/common';
|
||||||
import { AuthGuard } from '@nestjs/passport';
|
import { AuthGuard } from '@nestjs/passport';
|
||||||
import {AuthService} from "../services/auth.service"
|
import { AuthService } from "../services/auth.service"
|
||||||
|
import { AuthJwtDto } from "../dto/auth.jwt.dto"
|
||||||
|
import {ApiBearerAuth, ApiImplicitBody, ApiImplicitQuery, ApiResponse, ApiUseTags} from "@nestjs/swagger"
|
||||||
|
|
||||||
|
@ApiUseTags('authentication')
|
||||||
@Controller('auth')
|
@Controller('auth')
|
||||||
export class AuthController {
|
export class AuthController {
|
||||||
constructor(private readonly authService: AuthService) {}
|
constructor(private readonly authService: AuthService) {}
|
||||||
|
|
||||||
|
@ApiResponse({ status: 201, description: 'Successful login.', type: AuthJwtDto})
|
||||||
|
@ApiResponse({ status: 401, description: 'Invalid Credentials.'})
|
||||||
|
@ApiImplicitQuery({name: 'username', type: String})
|
||||||
|
@ApiImplicitQuery({name: 'password', type: String})
|
||||||
@UseGuards(AuthGuard('password'))
|
@UseGuards(AuthGuard('password'))
|
||||||
@Post('login')
|
@Post('login')
|
||||||
async login(@Request() req) {
|
async login(@Request() req): Promise<AuthJwtDto> {
|
||||||
return this.authService.createToken(req.user);
|
return this.authService.createToken(req.user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiBearerAuth()
|
||||||
|
@ApiResponse({ status: 201, description: 'Consumed Refresh Token.', type: AuthJwtDto})
|
||||||
|
@ApiResponse({ status: 401, description: 'Invalid Token.'})
|
||||||
@UseGuards(AuthGuard('jwt.refresh'))
|
@UseGuards(AuthGuard('jwt.refresh'))
|
||||||
@Post('refresh')
|
@Post('refresh')
|
||||||
async refresh(@Request() req) {
|
async refresh(@Request() req): Promise<AuthJwtDto> {
|
||||||
return this.authService.createToken(req.user);
|
return this.authService.createToken(req.user);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
9
api/src/auth/dto/auth.jwt.dto.ts
Normal file
9
api/src/auth/dto/auth.jwt.dto.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import { ApiModelProperty } from '@nestjs/swagger';
|
||||||
|
|
||||||
|
export class AuthJwtDto {
|
||||||
|
@ApiModelProperty()
|
||||||
|
access_token: string;
|
||||||
|
|
||||||
|
@ApiModelProperty()
|
||||||
|
refresh_token: string;
|
||||||
|
}
|
@ -1,4 +0,0 @@
|
|||||||
export interface AuthJwt {
|
|
||||||
access_token: string;
|
|
||||||
refresh_token: string;
|
|
||||||
}
|
|
@ -4,7 +4,7 @@ import { PasswordService } from "./password.service"
|
|||||||
import { JwtService } from '@nestjs/jwt';
|
import { JwtService } from '@nestjs/jwt';
|
||||||
import { AuthUser } from "../interfaces/auth.user.interface"
|
import { AuthUser } from "../interfaces/auth.user.interface"
|
||||||
import { User } from "../../users/interfaces/user.interface"
|
import { User } from "../../users/interfaces/user.interface"
|
||||||
import {AuthJwt} from "../interfaces/auth.jwt.interface"
|
import {AuthJwtDto} from "../dto/auth.jwt.dto"
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class AuthService {
|
export class AuthService {
|
||||||
@ -47,7 +47,7 @@ export class AuthService {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
async createToken(user: AuthUser): Promise<AuthJwt> {
|
async createToken(user: AuthUser): Promise<AuthJwtDto> {
|
||||||
const payload = {
|
const payload = {
|
||||||
id: user.id,
|
id: user.id,
|
||||||
username: user.username,
|
username: user.username,
|
||||||
|
Loading…
Reference in New Issue
Block a user