Email verification frontend.

This commit is contained in:
2022-09-09 08:39:46 +02:00
parent 65d62e8e49
commit 637dfb45d8
10 changed files with 113 additions and 48 deletions

View File

@@ -5,7 +5,7 @@ import { ConfigModule } from '@nestjs/config';
import { GraphQLISODateTime, GraphQLModule } from '@nestjs/graphql';
import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo';
import { ApolloServerPluginLandingPageLocalDefault } from 'apollo-server-core';
import { UsersModule } from './users/users.module';
// import { UsersModule } from './users/users.module';
@Module({
imports: [
@@ -29,7 +29,7 @@ import { UsersModule } from './users/users.module';
resolvers: { DateTime: GraphQLISODateTime },
plugins: [ApolloServerPluginLandingPageLocalDefault()],
}),
UsersModule,
// UsersModule,
],
controllers: [AppController],
providers: [],

View File

@@ -46,15 +46,32 @@ export class SupertokensService {
}),
],
}),
Session
.init
// {
// jwt: {
// enable: true,
// issuer: `${process.env.APP_URL}/auth/api`,
// },
// }
(),
Session.init({
// antiCsrf: "VIA_CUSTOM_HEADER",
jwt: {
enable: true,
issuer: `${process.env.APP_URL}/auth/api`,
},
override: {
functions: function (originalImplementation) {
return {
...originalImplementation,
createNewSession: async function (input) {
input.accessTokenPayload = {
...input.accessTokenPayload,
'https://hasura.io/jwt/claims': {
'x-hasura-user-id': input.userId,
'x-hasura-default-role': 'user',
'x-hasura-allowed-roles': ['user'],
},
};
return originalImplementation.createNewSession(input);
},
};
},
},
}),
],
});
}

View File

@@ -2,18 +2,18 @@ import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import supertokens from 'supertokens-node';
import { SupertokensExceptionFilter } from './auth/filters/auth.filter';
import { PrismaService } from 'prisma/prisma.service';
// import { PrismaService } from 'prisma/prisma.service';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.enableCors({
origin: [process.env.WEBAPP_URL, 'https://studio.apollographql.com'],
origin: [process.env.WEBAPP_URL, 'http://server.home:8081'],
allowedHeaders: ['content-type', ...supertokens.getAllCORSHeaders()],
credentials: true,
});
app.useGlobalFilters(new SupertokensExceptionFilter());
const prismaService = app.get(PrismaService);
await prismaService.enableShutdownHooks(app);
// const prismaService = app.get(PrismaService);
// await prismaService.enableShutdownHooks(app);
await app.listen(process.env.APP_PORT);
}

View File

@@ -6,19 +6,19 @@ import { UsersService } from './users.service';
export class UsersResolver {
constructor(private readonly usersService: UsersService) {}
@Mutation('createUser')
create(@Args('createUserInput') createUserInput: Prisma.UserCreateInput) {
return this.usersService.create(createUserInput);
}
@Query('users')
findAll(@Args('params') params?: Prisma.UserFindManyArgs) {
return this.usersService.users(params);
}
// @Mutation('createUser')
// create(@Args('createUserInput') createUserInput: Prisma.UserCreateInput) {
// return this.usersService.create(createUserInput);
// }
// @Query('users')
// findAll(@Args('params') params?: Prisma.UserFindManyArgs) {
// return this.usersService.users(params);
// }
@Query('user')
findOne(@Args('id') id: string) {
return this.usersService.user({ id });
}
// @Query('user')
// findOne(@Args('id') id: string) {
// return this.usersService.user({ id });
// }
// @Mutation('updateUser')
// update(@Args('updateUserInput') updateUserInput: UpdateUserInput) {

View File

@@ -1,29 +1,29 @@
import { Injectable } from '@nestjs/common';
import { Prisma, User } from '@prisma/client';
// import { Prisma, User } from '@prisma/client';
import { PrismaService } from 'prisma/prisma.service';
@Injectable()
export class UsersService {
constructor(private readonly prismaService: PrismaService) {}
async user(uniqueInput: Prisma.UserWhereUniqueInput) {
return await this.prismaService.user.findUnique({ where: uniqueInput });
}
// async user(uniqueInput: Prisma.UserWhereUniqueInput) {
// return await this.prismaService.user.findUnique({ where: uniqueInput });
// }
async users(params?: Prisma.UserFindManyArgs) {
return await this.prismaService.user.findMany(params);
}
// async users(params?: Prisma.UserFindManyArgs) {
// return await this.prismaService.user.findMany(params);
// }
create(createUserInput: Prisma.UserCreateInput) {
return this.prismaService.user.create({ data: createUserInput });
}
// create(createUserInput: Prisma.UserCreateInput) {
// return this.prismaService.user.create({ data: createUserInput });
// }
update(id: string, userUpdateInput: Prisma.UserUpdateInput) {
return this.prismaService.user.update({
where: { id },
data: userUpdateInput,
});
}
// update(id: string, userUpdateInput: Prisma.UserUpdateInput) {
// return this.prismaService.user.update({
// where: { id },
// data: userUpdateInput,
// });
// }
// remove(id: string) {
// return `This action removes a #${id} user`;