[WEB-5518]: update magic code token to send code as 6 digit numbers (#8188)

* refactor: simplify token generation in MagicCodeProvider by using a numeric approach

* fix: update placeholder text for unique code input across multiple languages

* refactor: replace token generation with a numeric approach for user email updates

* fix: update placeholder text for unique code input in multiple languages to a numeric format

* refactor: replace random token generation with secrets for enhanced security in user email updates and magic code provider
This commit is contained in:
Nikhil
2025-12-01 18:56:14 +05:30
committed by GitHub
parent 980428b204
commit a7e2e596bf
23 changed files with 39 additions and 54 deletions

View File

@@ -2,8 +2,6 @@
import uuid
import json
import logging
import random
import string
import secrets
# Django imports
@@ -151,13 +149,7 @@ class UserEndpoint(BaseViewSet):
# Include user ID to bind the code to the specific user
cache_key = f"magic_email_update_{user.id}_{new_email}"
## Generate a random token
token = (
"".join(secrets.choice(string.ascii_lowercase) for _ in range(4))
+ "-"
+ "".join(secrets.choice(string.ascii_lowercase) for _ in range(4))
+ "-"
+ "".join(secrets.choice(string.ascii_lowercase) for _ in range(4))
)
token = str(secrets.randbelow(900000) + 100000)
# Store in cache with 10 minute expiration
cache_data = json.dumps({"token": token})
cache.set(cache_key, cache_data, timeout=600)

View File

@@ -1,8 +1,7 @@
# Python imports
import json
import os
import random
import string
import secrets
# Module imports
@@ -50,13 +49,7 @@ class MagicCodeProvider(CredentialAdapter):
def initiate(self):
## Generate a random token
token = (
"".join(random.choices(string.ascii_lowercase, k=4))
+ "-"
+ "".join(random.choices(string.ascii_lowercase, k=4))
+ "-"
+ "".join(random.choices(string.ascii_lowercase, k=4))
)
token = str(secrets.randbelow(900000) + 100000)
ri = redis_instance()

View File

@@ -113,7 +113,7 @@ export function AuthUniqueCodeForm(props: TAuthUniqueCodeForm) {
name="code"
value={uniqueCodeFormData.code}
onChange={(e) => handleFormChange("code", e.target.value)}
placeholder="gets-sets-flys"
placeholder="123456"
className="disable-autofill-style h-10 w-full border border-custom-border-100 !bg-custom-background-100 pr-12 placeholder:text-custom-text-400"
autoFocus
/>

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "Jedinečný kód",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "Vložte kód zaslaný na váš e-mail",
requesting_new_code: "Žádám o nový kód",
sending_code: "Odesílám kód",
@@ -1544,7 +1544,7 @@ export default {
},
code: {
label: "Jedinečný kód",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Ověřovací kód byl odeslán na váš nový e-mail.",
errors: {
required: "Jedinečný kód je povinný",

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "Einmaliger Code",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "Fügen Sie den an Ihre E-Mail gesendeten Code ein",
requesting_new_code: "Neuen Code anfordern",
sending_code: "Code wird gesendet",
@@ -1562,7 +1562,7 @@ export default {
},
code: {
label: "Einmaliger Code",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Verifizierungscode wurde an deine neue E-Mail gesendet.",
errors: {
required: "Einmaliger Code ist erforderlich",

View File

@@ -75,7 +75,7 @@ export default {
},
unique_code: {
label: "Unique code",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "Paste the code sent to your email",
requesting_new_code: "Requesting new code",
sending_code: "Sending code",

View File

@@ -1378,7 +1378,7 @@ export default {
},
code: {
label: "Unique code",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Verification code sent to your new email.",
errors: {
required: "Unique code is required",

View File

@@ -1566,7 +1566,7 @@ export default {
},
code: {
label: "Código único",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Código de verificación enviado a tu nuevo correo electrónico.",
errors: {
required: "El código único es obligatorio",

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "Code unique",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "Collez le code envoyé à votre e-mail",
requesting_new_code: "Demande dun nouveau code",
sending_code: "Envoi du code",
@@ -1564,7 +1564,7 @@ export default {
},
code: {
label: "Code unique",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Code de vérification envoyé à votre nouvel e-mail.",
errors: {
required: "Le code unique est requis",

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "Kode unik",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "Tempelkan kode yang dikirim ke email anda",
requesting_new_code: "Meminta kode baru",
sending_code: "Mengirim kode",
@@ -1552,7 +1552,7 @@ export default {
},
code: {
label: "Kode unik",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Kode verifikasi dikirim ke email baru Anda.",
errors: {
required: "Kode unik wajib diisi",

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "Codice unico",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "Incolla il codice inviato alla tua email",
requesting_new_code: "Richiesta di nuovo codice",
sending_code: "Invio codice",
@@ -1556,7 +1556,7 @@ export default {
},
code: {
label: "Codice univoco",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Codice di verifica inviato alla tua nuova email.",
errors: {
required: "Il codice univoco è obbligatorio",

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "ユニークコード",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "メールで送信されたコードを貼り付けてください",
requesting_new_code: "新しいコードをリクエスト中",
sending_code: "コードを送信中",
@@ -1543,7 +1543,7 @@ export default {
},
code: {
label: "認証コード",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "認証コードを新しいメールに送信しました。",
errors: {
required: "認証コードは必須です",

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "고유 코드",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "이메일로 전송된 코드를 붙여넣기",
requesting_new_code: "새 코드 요청 중",
sending_code: "코드 전송 중",
@@ -1536,7 +1536,7 @@ export default {
},
code: {
label: "고유 코드",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "인증 코드가 새 이메일로 전송되었습니다.",
errors: {
required: "고유 코드는 필수입니다",

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "Unikalny kod",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "Wklej kod wysłany na Twój e-mail",
requesting_new_code: "Żądanie nowego kodu",
sending_code: "Wysyłanie kodu",
@@ -1547,7 +1547,7 @@ export default {
},
code: {
label: "Unikalny kod",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Kod weryfikacyjny wysłano na nowy e-mail.",
errors: {
required: "Unikalny kod jest wymagany",

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "Código único",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "Cole o código enviado para seu email",
requesting_new_code: "Solicitando novo código",
sending_code: "Enviando código",
@@ -1564,7 +1564,7 @@ export default {
},
code: {
label: "Código único",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Código de verificação enviado para o novo e-mail.",
errors: {
required: "O código único é obrigatório",

View File

@@ -1556,7 +1556,7 @@ export default {
},
code: {
label: "Cod unic",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Codul de verificare a fost trimis la noul e-mail.",
errors: {
required: "Codul unic este obligatoriu",

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "Уникальный код",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "Вставьте код, отправленный на ваш email",
requesting_new_code: "Запрос нового кода",
sending_code: "Отправка кода",
@@ -1549,7 +1549,7 @@ export default {
},
code: {
label: "Уникальный код",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Код подтверждения отправлен на ваш новый email.",
errors: {
required: "Уникальный код обязателен",

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "Jedinečný kód",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "Vložte kód zaslaný na váš e-mail",
requesting_new_code: "Žiadam o nový kód",
sending_code: "Odosielam kód",
@@ -1547,7 +1547,7 @@ export default {
},
code: {
label: "Jedinečný kód",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Overovací kód bol odoslaný na váš nový e-mail.",
errors: {
required: "Jedinečný kód je povinný",

View File

@@ -1551,7 +1551,7 @@ export default {
},
code: {
label: "Benzersiz kod",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Doğrulama kodu yeni e-postanıza gönderildi.",
errors: {
required: "Benzersiz kod zorunludur",

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "Унікальний код",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "Вставте код, надісланий на вашу електронну пошту",
requesting_new_code: "Запитую новий код",
sending_code: "Надсилаю код",
@@ -1551,7 +1551,7 @@ export default {
},
code: {
label: "Унікальний код",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Код підтвердження надіслано на ваш новий email.",
errors: {
required: "Унікальний код є обов’язковим",

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "Mã duy nhất",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "Dán mã xác minh đã gửi đến email của bạn",
requesting_new_code: "Đang yêu cầu mã mới",
sending_code: "Đang gửi mã",
@@ -1553,7 +1553,7 @@ export default {
},
code: {
label: "Mã duy nhất",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "Mã xác minh đã được gửi tới email mới của bạn.",
errors: {
required: "Mã duy nhất là bắt buộc",

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "唯一码",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "粘贴发送到您邮箱的验证码",
requesting_new_code: "正在请求新验证码",
sending_code: "正在发送验证码",
@@ -1527,7 +1527,7 @@ export default {
},
code: {
label: "验证码",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "验证码已发送至你的新邮箱。",
errors: {
required: "验证码为必填项",

View File

@@ -74,7 +74,7 @@ export default {
},
unique_code: {
label: "唯一代碼",
placeholder: "gets-sets-flys",
placeholder: "123456",
paste_code: "貼上傳送到您電子郵件的代碼",
requesting_new_code: "正在請求新代碼",
sending_code: "正在發送代碼",
@@ -1528,7 +1528,7 @@ export default {
},
code: {
label: "驗證碼",
placeholder: "gets-sets-flys",
placeholder: "123456",
helper_text: "驗證碼已傳送到你的新電子郵件。",
errors: {
required: "驗證碼為必填",