diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-10-08 13:37:02 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-08 13:37:02 +0900 |
| commit | b875cc994968bb334dfb9d83707e56ab3971a0d1 (patch) | |
| tree | 5655892af829ecad9f040624f8b6cd31410284f9 /src/server/api/common | |
| parent | update dependencies (diff) | |
| download | sharkey-b875cc994968bb334dfb9d83707e56ab3971a0d1.tar.gz sharkey-b875cc994968bb334dfb9d83707e56ab3971a0d1.tar.bz2 sharkey-b875cc994968bb334dfb9d83707e56ab3971a0d1.zip | |
feat: アカウント作成にメールアドレス必須にするオプション (#7856)
* feat: アカウント作成にメールアドレス必須にするオプション
* ui
* fix bug
* fix bug
* fix bug
* :art:
Diffstat (limited to 'src/server/api/common')
| -rw-r--r-- | src/server/api/common/signup.ts | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/src/server/api/common/signup.ts b/src/server/api/common/signup.ts index eb3aa09c8c..2ba0d8e479 100644 --- a/src/server/api/common/signup.ts +++ b/src/server/api/common/signup.ts @@ -11,20 +11,30 @@ import { UserKeypair } from '@/models/entities/user-keypair'; import { usersChart } from '@/services/chart/index'; import { UsedUsername } from '@/models/entities/used-username'; -export async function signup(username: User['username'], password: UserProfile['password'], host: string | null = null) { +export async function signup(opts: { + username: User['username']; + password?: string | null; + passwordHash?: UserProfile['password'] | null; + host?: string | null; +}) { + const { username, password, passwordHash, host } = opts; + let hash = passwordHash; + // Validate username if (!Users.validateLocalUsername.ok(username)) { throw new Error('INVALID_USERNAME'); } - // Validate password - if (!Users.validatePassword.ok(password)) { - throw new Error('INVALID_PASSWORD'); - } + if (password != null && passwordHash == null) { + // Validate password + if (!Users.validatePassword.ok(password)) { + throw new Error('INVALID_PASSWORD'); + } - // Generate hash of password - const salt = await bcrypt.genSalt(8); - const hash = await bcrypt.hash(password, salt); + // Generate hash of password + const salt = await bcrypt.genSalt(8); + hash = await bcrypt.hash(password, salt); + } // Generate secret const secret = generateUserToken(); |