Added Simple Auth with JWT Tokens and Postgres #2
|
@ -7,8 +7,8 @@ import {
|
|||
} from 'typeorm';
|
||||
|
||||
@Entity()
|
||||
export class User {
|
||||
@PrimaryGeneratedColumn()
|
||||
export class UserCredentials {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id: number;
|
||||
|
||||
@Column({ unique: true })
|
|
@ -4,13 +4,16 @@ import { AuthController } from './controller/auth.controller';
|
|||
import { JwtModule } from '@nestjs/jwt';
|
||||
import { AccessTokenStrategy, RefreshTokenStrategy } from './strategies';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { User } from 'src/entities/user.entity';
|
||||
import { UserCredentials } from 'src/entities/user-credentials.entity';
|
||||
import { UserRepository } from './repositories/user.repository';
|
||||
import { EncryptionService } from './services/encryption.service';
|
||||
import { TokenManagementService } from './services/token-management.service';
|
||||
|
||||
@Module({
|
||||
imports: [JwtModule.register({}), TypeOrmModule.forFeature([User])],
|
||||
imports: [
|
||||
JwtModule.register({}),
|
||||
TypeOrmModule.forFeature([UserCredentials]),
|
||||
],
|
||||
providers: [
|
||||
AuthService,
|
||||
TokenManagementService,
|
||||
|
|
|
@ -1,25 +1,32 @@
|
|||
import { Injectable } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { User } from 'src/entities/user.entity';
|
||||
import { UserCredentials } from 'src/entities/user-credentials.entity';
|
||||
import { Repository } from 'typeorm';
|
||||
|
||||
@Injectable()
|
||||
export class UserRepository {
|
||||
constructor(
|
||||
@InjectRepository(User)
|
||||
private readonly repository: Repository<User>
|
||||
@InjectRepository(UserCredentials)
|
||||
private readonly repository: Repository<UserCredentials>
|
||||
) {}
|
||||
|
||||
public async createUser(email: string, hash: string): Promise<User> {
|
||||
public async createUser(
|
||||
email: string,
|
||||
hash: string
|
||||
): Promise<UserCredentials> {
|
||||
const user = this.repository.create({ email, hash });
|
||||
return this.repository.save(user);
|
||||
}
|
||||
|
||||
public async findUserByEmail(email: string): Promise<User | undefined> {
|
||||
public async findUserByEmail(
|
||||
email: string
|
||||
): Promise<UserCredentials | undefined> {
|
||||
return this.repository.findOne({ where: { email } });
|
||||
}
|
||||
|
||||
public async findUserById(userId: number): Promise<User | undefined> {
|
||||
public async findUserById(
|
||||
userId: number
|
||||
): Promise<UserCredentials | undefined> {
|
||||
return this.repository.findOne({ where: { id: userId } });
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import { ConfigService } from '@nestjs/config';
|
||||
import { TypeOrmModuleOptions } from '@nestjs/typeorm';
|
||||
import { resolve } from 'path';
|
||||
import { User } from '../../entities/user.entity';
|
||||
import { UserCredentials } from '../../entities/user-credentials.entity';
|
||||
|
||||
export const databaseConfigFactory = (
|
||||
configService: ConfigService
|
||||
|
@ -14,5 +13,5 @@ export const databaseConfigFactory = (
|
|||
database: configService.get('DB_NAME'),
|
||||
synchronize: true,
|
||||
logging: true,
|
||||
entities: [User],
|
||||
entities: [UserCredentials],
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue