add user module
This commit is contained in:
parent
1f8d4dc413
commit
ee5af33a96
16
src/modules/user/entities/access.token.entity.ts
Normal file
16
src/modules/user/entities/access.token.entity.ts
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import { Entity, OneToOne } from 'typeorm';
|
||||||
|
|
||||||
|
import { BaseToken } from '@/modules/user/entities/base.token';
|
||||||
|
import { RefreshTokenEntity } from '@/modules/user/entities/refresh.token.entity';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户认证token模型
|
||||||
|
*/
|
||||||
|
@Entity('user_access_token')
|
||||||
|
export class AccessTokenEntity extends BaseToken {
|
||||||
|
/**
|
||||||
|
* 关联的刷新令牌
|
||||||
|
*/
|
||||||
|
@OneToOne(() => RefreshTokenEntity, (token) => token.accessToken, { cascade: true })
|
||||||
|
refreshToken: string;
|
||||||
|
}
|
24
src/modules/user/entities/base.token.ts
Normal file
24
src/modules/user/entities/base.token.ts
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import { Exclude } from 'class-transformer';
|
||||||
|
import { BaseEntity, Column, CreateDateColumn, PrimaryColumn } from 'typeorm';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Token模型
|
||||||
|
*/
|
||||||
|
@Exclude()
|
||||||
|
export abstract class BaseToken extends BaseEntity {
|
||||||
|
@PrimaryColumn({ type: 'varchar', generated: 'uuid', length: 36 })
|
||||||
|
id: string;
|
||||||
|
|
||||||
|
@Column({ length: 500, comment: '令牌字符串' })
|
||||||
|
value: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
comment: '令牌过期时间',
|
||||||
|
})
|
||||||
|
expired_at: Date;
|
||||||
|
|
||||||
|
@CreateDateColumn({
|
||||||
|
comment: '令牌创建时间',
|
||||||
|
})
|
||||||
|
createdAt: Date;
|
||||||
|
}
|
17
src/modules/user/entities/refresh.token.entity.ts
Normal file
17
src/modules/user/entities/refresh.token.entity.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import { Entity, JoinColumn, OneToOne, Relation } from 'typeorm';
|
||||||
|
|
||||||
|
import { AccessTokenEntity } from '@/modules/user/entities/access.token.entity';
|
||||||
|
import { BaseToken } from '@/modules/user/entities/base.token';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 刷新Token的Token模型
|
||||||
|
*/
|
||||||
|
@Entity('user_refresh_token')
|
||||||
|
export class RefreshTokenEntity extends BaseToken {
|
||||||
|
/**
|
||||||
|
* 关联的登录令牌
|
||||||
|
*/
|
||||||
|
@OneToOne(() => AccessTokenEntity, (token) => token.refreshToken, { onDelete: 'CASCADE' })
|
||||||
|
@JoinColumn()
|
||||||
|
accessToken: Relation<AccessTokenEntity>;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user