mirror of
https://github.com/CaramelFur/Picsur.git
synced 2026-03-24 20:40:06 +01:00
Add ability to get fresh jwt
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { AuthModule } from './routes/api/auth/auth.module';
|
||||
import { ImageModule } from './routes/image/imageroute.module';
|
||||
@@ -29,4 +29,5 @@ import { EImage } from 'picsur-shared/dist/entities/image.entity';
|
||||
DemoManagerModule,
|
||||
],
|
||||
})
|
||||
export class AppModule {}
|
||||
export class AppModule {
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ async function bootstrap() {
|
||||
);
|
||||
app.useGlobalFilters(new MainExceptionFilter());
|
||||
app.useGlobalInterceptors(new SuccessInterceptor());
|
||||
app.useGlobalPipes(new ValidationPipe({ disableErrorMessages: true }));
|
||||
app.useGlobalPipes(new ValidationPipe({ disableErrorMessages: true, forbidUnknownValues: true }));
|
||||
await app.listen(Config.main.port, Config.main.host);
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,12 @@ import { JwtAuthGuard } from './jwt.guard';
|
||||
import { AdminGuard } from './admin.guard';
|
||||
import { HasFailed } from 'picsur-shared/dist/types';
|
||||
import AuthFasityRequest from './authrequest';
|
||||
import { AuthDeleteRequest, AuthLoginResponse, AuthRegisterRequest } from 'picsur-shared/dist/dto/auth.dto';
|
||||
import {
|
||||
AuthDeleteRequest,
|
||||
AuthLoginResponse,
|
||||
AuthMeResponse,
|
||||
AuthRegisterRequest,
|
||||
} from 'picsur-shared/dist/dto/auth.dto';
|
||||
|
||||
@Controller('api/auth')
|
||||
export class AuthController {
|
||||
@@ -77,6 +82,10 @@ export class AuthController {
|
||||
@UseGuards(JwtAuthGuard)
|
||||
@Get('me')
|
||||
async me(@Request() req: AuthFasityRequest) {
|
||||
return req.user;
|
||||
const meResponse: AuthMeResponse = new AuthMeResponse();
|
||||
meResponse.user = req.user;
|
||||
meResponse.newJwtToken = await this.authService.createToken(req.user);
|
||||
|
||||
return meResponse;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
import { Logger, Module, OnModuleInit } from '@nestjs/common';
|
||||
import {
|
||||
Logger,
|
||||
MiddlewareConsumer,
|
||||
Module,
|
||||
NestModule,
|
||||
OnModuleInit,
|
||||
} from '@nestjs/common';
|
||||
import { PassportModule } from '@nestjs/passport';
|
||||
import { AuthService } from './auth.service';
|
||||
import { LocalStrategy } from './local.strategy';
|
||||
@@ -27,7 +33,6 @@ export class AuthModule implements OnModuleInit {
|
||||
|
||||
onModuleInit() {
|
||||
this.checkJwtSecret();
|
||||
|
||||
this.ensureAdminExists();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { JwtService } from '@nestjs/jwt';
|
||||
import * as bcrypt from 'bcrypt';
|
||||
import { plainToClass } from 'class-transformer';
|
||||
import { instanceToPlain, plainToClass } from 'class-transformer';
|
||||
import { validate } from 'class-validator';
|
||||
import { JwtDataDto } from 'picsur-shared/dist/dto/auth.dto';
|
||||
import { EUser } from 'picsur-shared/dist/entities/user.entity';
|
||||
@@ -51,7 +51,7 @@ export class AuthService {
|
||||
throw new Error('Invalid jwt token generated');
|
||||
}
|
||||
|
||||
return this.jwtService.signAsync(jwtData);
|
||||
return this.jwtService.signAsync(instanceToPlain(jwtData));
|
||||
}
|
||||
|
||||
async makeAdmin(user: string | EUser): AsyncFailable<true> {
|
||||
|
||||
Reference in New Issue
Block a user