auth.controller.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import type { RefreshTokenDto } from '@/models/dto/auth.dto';
  2. import { Public } from '@/core/decorator';
  3. import { LocalAuthGuard } from '@/core/guard';
  4. import {
  5. Body,
  6. Controller,
  7. Get,
  8. HttpCode,
  9. HttpStatus,
  10. Post,
  11. Request,
  12. UseGuards,
  13. } from '@nestjs/common';
  14. import { AuthService } from './auth.service';
  15. @Controller('auth')
  16. export class AuthController {
  17. constructor(private authService: AuthService) {}
  18. /**
  19. * 获取用户权限码
  20. * @param req
  21. */
  22. @Get('getAccessCodes')
  23. @HttpCode(HttpStatus.OK)
  24. async getAccessCodes(@Request() req: Request) {
  25. return await this.authService.getAccessCodes(req.user.username);
  26. }
  27. /**
  28. * 获取用户信息
  29. * @param req
  30. */
  31. @Get('getUserInfo')
  32. @HttpCode(HttpStatus.OK)
  33. async getProfile(@Request() req: Request) {
  34. return await this.authService.getUserInfo(req.user.username);
  35. }
  36. /**
  37. * 用户登录
  38. * @param req
  39. */
  40. @Public()
  41. @UseGuards(LocalAuthGuard)
  42. @Post('login')
  43. @HttpCode(HttpStatus.OK)
  44. async login(@Request() req: Request) {
  45. return await this.authService.login(req.user);
  46. }
  47. @Post('refreshToken')
  48. @HttpCode(HttpStatus.OK)
  49. async refreshToken(@Body() refreshTokenDto: RefreshTokenDto) {
  50. return this.authService.refresh(refreshTokenDto.refreshToken);
  51. }
  52. }