Fix token not being refreshed (#1975)

* Fix token not being refreshed

* Fix token not being refreshed

* v2

* Fix
This commit is contained in:
Charles Bochet 2023-10-11 17:12:39 +02:00 committed by GitHub
parent b2352212fc
commit 3b9ceade76
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 11 deletions

View File

@ -5,13 +5,13 @@ module.exports = {
client: {
overlay: {
runtimeErrors: (error) => {
if (error.message === "ResizeObserver loop limit exceeded") {
return false;
switch (error.message) {
case "ResizeObserver loop limit exceeded":
case "Unauthenticated":
return false;
default:
return true;
}
if (error.message === "Unauthorized") {
return false;
}
return true;
},
},
}

View File

@ -71,7 +71,7 @@ export class ApolloFactory<TCacheShape> implements ApolloManager<TCacheShape> {
const retryLink = new RetryLink({
delay: {
initial: 100,
initial: 3000,
},
attempts: {
max: 2,

View File

@ -1,7 +1,7 @@
import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { ConfigModule } from '@nestjs/config';
import { ModuleRef } from '@nestjs/core';
import { APP_FILTER, ModuleRef } from '@nestjs/core';
import { YogaDriver, YogaDriverConfig } from '@graphql-yoga/nestjs';
import GraphQLJSON from 'graphql-type-json';
@ -23,6 +23,7 @@ import {
JwtPayload,
} from './core/auth/strategies/jwt.auth.strategy';
import { TenantService } from './tenant/tenant.service';
import { ExceptionFilter } from './filters/exception.filter';
@Module({
imports: [
@ -107,7 +108,13 @@ import { TenantService } from './tenant/tenant.service';
CoreModule,
TenantModule,
],
providers: [AppService],
providers: [
AppService,
{
provide: APP_FILTER,
useClass: ExceptionFilter,
},
],
})
export class AppModule {
static moduleRef: ModuleRef;

View File

@ -1,4 +1,4 @@
import { Catch, HttpException } from '@nestjs/common';
import { Catch, UnauthorizedException } from '@nestjs/common';
import { GqlExceptionFilter } from '@nestjs/graphql';
import { Prisma } from '@prisma/client';
@ -6,7 +6,7 @@ import { GraphQLError } from 'graphql';
@Catch()
export class ExceptionFilter implements GqlExceptionFilter {
catch(exception: HttpException) {
catch(exception: Error) {
if (exception instanceof Prisma.PrismaClientValidationError) {
throw new GraphQLError('Invalid request', {
extensions: {
@ -14,6 +14,14 @@ export class ExceptionFilter implements GqlExceptionFilter {
},
});
}
if (exception instanceof UnauthorizedException) {
throw new GraphQLError('Unauthorized', {
extensions: {
code: 'UNAUTHENTICATED',
},
});
}
return exception;
}
}