enhance: アカウント登録時のメールアドレス認証に30分の有効期限を設定 (#12221)
* add: metaにemailVerificationExpiresInを追加 * enhance: 招待コード使用時, メアド認証時に認証期限を確認するように * add: クライアント側に実装 * update: CHANGELOG.md * add: コメントを追加 * Revert "add: metaにemailVerificationExpiresInを追加" This reverts commitceb6ccff51
. * Revert "add: コメントを追加" This reverts commit7ee301c3ee
. * change(client): メール認証の有効期限を30分で固定するように変更 * change(backend): メール認証の有効期限を30分で固定するように変更 * update: CHANGELOG.md
This commit is contained in:
@@ -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,
|
||||
|
Reference in New Issue
Block a user