Skip to content

Commit d6a7c6b

Browse files
committed
feat: default user
1 parent 9965133 commit d6a7c6b

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

src/config/config.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,12 @@ export const oauthProvider = {
8080
getTokenUseQuery: (provider: string) =>
8181
toBoolean(loadEnv(`${toUpperSnakeCase(provider)}_GET_TOKEN_USE_QUERY`)),
8282
};
83+
84+
export const defaultUser = {
85+
username: loadEnv('DEFAULT_USER_USERNAME', { default: 'admin' }),
86+
password: loadEnv('DEFAULT_USER_PASSWORD', { default: '[email protected]' }), // 注意:实际应用中请使用更安全的密码处理方式
87+
email: loadEnv('DEFAULT_USER_EMAIL', { default: '[email protected]' }),
88+
roles: loadEnv('DEFAULT_USER_ROLES', { default: 'admin' })
89+
.split(',')
90+
.map((role) => role.trim()),
91+
};

src/user/user.module.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,31 @@
11
import { Module } from '@nestjs/common';
22
import { MongooseModule } from '@nestjs/mongoose';
3+
import Debug from 'debug';
34

5+
import { defaultUser } from 'src/config';
46
import { NamespaceModule } from 'src/namespace';
57

68
import { User, UserSchema } from './entities/user.entity';
79
import { UserController } from './user.controller';
810
import { UserService } from './user.service';
911

12+
const debug = Debug('app:user:module');
13+
1014
@Module({
1115
imports: [MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]), NamespaceModule],
1216
controllers: [UserController],
1317
providers: [UserService],
1418
exports: [UserService],
1519
})
16-
export class UserModule {}
20+
export class UserModule {
21+
constructor(private readonly userService: UserService) {}
22+
23+
async onModuleInit() {
24+
// 初始化用户
25+
const user = await this.userService.findOne({ username: defaultUser.username });
26+
if (!user) {
27+
await this.userService.upsertByUsername(defaultUser.username, defaultUser);
28+
debug(`default user ${defaultUser.username} created.`);
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)