mirror of
https://github.com/CaramelFur/Picsur.git
synced 2025-11-15 16:05:49 +01:00
add guest user functionality
This commit is contained in:
@@ -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],
|
||||
|
||||
39
backend/src/managers/auth/guards/guest.strategy.ts
Normal file
39
backend/src/managers/auth/guards/guest.strategy.ts
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -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']) {}
|
||||
Reference in New Issue
Block a user