mirror of
https://github.com/CaramelFur/Picsur.git
synced 2025-11-12 14:55:39 +01:00
refactor backend done
This commit is contained in:
@@ -2,6 +2,7 @@ import { Injectable, Logger } from '@nestjs/common';
|
||||
import { JwtService } from '@nestjs/jwt';
|
||||
import { instanceToPlain, plainToClass } from 'class-transformer';
|
||||
import { JwtDataDto } from 'picsur-shared/dist/dto/jwt.dto';
|
||||
import { AsyncFailable, Fail } from 'picsur-shared/dist/types';
|
||||
import { strictValidate } from 'picsur-shared/dist/util/validate';
|
||||
import { EUserBackend } from '../../models/entities/user.entity';
|
||||
|
||||
@@ -11,7 +12,7 @@ export class AuthManagerService {
|
||||
|
||||
constructor(private jwtService: JwtService) {}
|
||||
|
||||
async createToken(user: EUserBackend): Promise<string> {
|
||||
async createToken(user: EUserBackend): AsyncFailable<string> {
|
||||
const jwtData: JwtDataDto = plainToClass(JwtDataDto, {
|
||||
user: {
|
||||
username: user.username,
|
||||
@@ -23,10 +24,13 @@ export class AuthManagerService {
|
||||
// in case of any failures
|
||||
const errors = await strictValidate(jwtData);
|
||||
if (errors.length > 0) {
|
||||
this.logger.warn(errors);
|
||||
throw new Error('Invalid jwt token generated');
|
||||
return Fail('Invalid JWT: ' + errors);
|
||||
}
|
||||
|
||||
return this.jwtService.signAsync(instanceToPlain(jwtData));
|
||||
try {
|
||||
return await this.jwtService.signAsync(instanceToPlain(jwtData));
|
||||
} catch (e) {
|
||||
return Fail("Couldn't create JWT: " + e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ import { strictValidate } from 'picsur-shared/dist/util/validate';
|
||||
import { UserRolesService } from '../../../collections/userdb/userrolesdb.service';
|
||||
import { Permissions } from '../../../models/dto/permissions.dto';
|
||||
import { EUserBackend } from '../../../models/entities/user.entity';
|
||||
import { isPermissionsArray } from '../../../models/util/permissions.validator';
|
||||
import { isPermissionsArray } from '../../../models/validators/permissions.validator';
|
||||
|
||||
// This guard extends both the jwt authenticator and the guest authenticator
|
||||
// The order matters here, because this results in the guest authenticator being used as a fallback
|
||||
|
||||
Reference in New Issue
Block a user