enhance: アカウント登録時のメールアドレス認証に30分の有効期限を設定 (#12221)

* add: metaにemailVerificationExpiresInを追加

* enhance: 招待コード使用時, メアド認証時に認証期限を確認するように

* add: クライアント側に実装

* update: CHANGELOG.md

* add: コメントを追加

* Revert "add: metaにemailVerificationExpiresInを追加"

This reverts commit ceb6ccff51a406bfd87b4da6c59401ce5551dd95.

* Revert "add: コメントを追加"

This reverts commit 7ee301c3eed4ded295490a6614650a3720317772.

* change(client): メール認証の有効期限を30分で固定するように変更

* change(backend): メール認証の有効期限を30分で固定するように変更

* update: CHANGELOG.md
This commit is contained in:
yukineko 2023-11-03 14:54:28 +09:00 committed by GitHub
parent 1729307fcf
commit 025ae436b5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 26 additions and 3 deletions

View file

@ -136,7 +136,20 @@ export class SignupApiService {
return;
}
if (ticket.usedAt) {
// メアド認証が有効の場合
if (instance.emailRequiredForSignup) {
// メアド認証済みならエラー
if (ticket.usedBy) {
reply.code(400);
return;
}
// 認証しておらず、メール送信から30分以内ならエラー
if (ticket.usedAt && ticket.usedAt.getTime() + (1000 * 60 * 30) > Date.now()) {
reply.code(400);
return;
}
} else if (ticket.usedAt) {
reply.code(400);
return;
}
@ -224,6 +237,10 @@ export class SignupApiService {
try {
const pendingUser = await this.userPendingsRepository.findOneByOrFail({ code });
if (this.idService.parse(pendingUser.id).date.getTime() + (1000 * 60 * 30) < Date.now()) {
throw new FastifyReplyError(400, 'EXPIRED');
}
const { account, secret } = await this.signupService.signup({
username: pendingUser.username,
passwordHash: pendingUser.password,