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 { 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')
|
||||
export class AuthController {
|
||||
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'))
|
||||
@Post('login')
|
||||
async login(@Request() req) {
|
||||
async login(@Request() req): Promise<AuthJwtDto> {
|
||||
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'))
|
||||
@Post('refresh')
|
||||
async refresh(@Request() req) {
|
||||
async refresh(@Request() req): Promise<AuthJwtDto> {
|
||||
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 { AuthUser } from "../interfaces/auth.user.interface"
|
||||
import { User } from "../../users/interfaces/user.interface"
|
||||
import {AuthJwt} from "../interfaces/auth.jwt.interface"
|
||||
import {AuthJwtDto} from "../dto/auth.jwt.dto"
|
||||
|
||||
@Injectable()
|
||||
export class AuthService {
|
||||
@ -47,7 +47,7 @@ export class AuthService {
|
||||
};
|
||||
}
|
||||
|
||||
async createToken(user: AuthUser): Promise<AuthJwt> {
|
||||
async createToken(user: AuthUser): Promise<AuthJwtDto> {
|
||||
const payload = {
|
||||
id: user.id,
|
||||
username: user.username,
|
||||
|
Loading…
Reference in New Issue
Block a user