add guest user functionality

This commit is contained in:
rubikscraft
2022-03-09 11:53:06 +01:00
parent 154bea5bc6
commit 749042cdd5
9 changed files with 71 additions and 4 deletions

View File

@@ -10,6 +10,7 @@ import {
} from '../../config/jwt.lateconfig.service';
import { PicsurLateConfigModule } from '../../config/lateconfig.module';
import { AuthManagerService } from './auth.service';
import { GuestStrategy } from './guards/guest.strategy';
import { JwtStrategy } from './guards/jwt.strategy';
import { LocalAuthStrategy } from './guards/localauth.strategy';
@@ -28,6 +29,7 @@ import { LocalAuthStrategy } from './guards/localauth.strategy';
AuthManagerService,
LocalAuthStrategy,
JwtStrategy,
GuestStrategy,
JwtSecretProvider,
],
exports: [AuthManagerService],

View File

@@ -0,0 +1,39 @@
import { Injectable, Logger } from '@nestjs/common';
import { PassportStrategy } from '@nestjs/passport';
import { Request } from 'express';
import { ParamsDictionary } from 'express-serve-static-core';
import { Strategy } from 'passport-strategy';
import { ParsedQs } from 'qs';
type ReqType = Request<
ParamsDictionary,
any,
any,
ParsedQs,
Record<string, any>
>;
class GuestPassportStrategy extends Strategy {
async validate(req: ReqType): Promise<any> {
return undefined;
}
override authenticate(req: ReqType, options?: any): void {
const user = this.validate(req);
req['user'] = user;
this.pass();
}
}
@Injectable()
export class GuestStrategy extends PassportStrategy(
GuestPassportStrategy,
'guest',
) {
private readonly logger = new Logger('GuestStrategy');
override async validate(payload: any) {
// TODO: add guest user
return;
}
}

View File

@@ -2,4 +2,4 @@ import { Injectable } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
@Injectable()
export class JwtAuthGuard extends AuthGuard('jwt') {}
export class MainAuthGuard extends AuthGuard(['jwt', 'guest']) {}