التسجيل الجديد ببريد إلكتروني قديم يتضمن + لا يعمل في واجهة برمجة التطبيقات REST

يبدو أنه في تحديث حديث، لم يعد التسجيل الجديد بنفس البريد الإلكتروني بما في ذلك علامة + لتمثيل بريد إلكتروني جديد مسموحًا به. نظامي يعتمد عليه بشدة. كيف يمكن تمكينه مرة أخرى؟

على سبيل المثال، إذا كنت قد سجلت بالفعل باستخدام email@gmail.com، فلا يمكنني التسجيل باستخدام email+1@gmail.com

بالمناسبة، أنا أختبر هذا باستخدام واجهة برمجة تطبيقات REST

أيضًا، ليس لدي هذا الخيار محددًا:

أعتقد أن هذا هو إعداد المسؤول normalize emails: :+1:

تعديل: لم أر هذا التعديل قبل أن أنشر. :slight_smile:

إعجاب واحد (1)

نعم، إنه معطل بالفعل بالنسبة لي

إعجاب واحد (1)

لا يمكنني تكرار هذا على try.discourse.org.

هل يمكنك التسجيل من واجهة المستخدم العادية بهذا البريد الإلكتروني؟

أيضًا، هل يمكنك التحقق مرة أخرى من أن البريد الإلكتروني +1 لم يتم استخدامه بالفعل للتسجيل؟

إعجاب واحد (1)

نعم، واجهة المستخدم العادية لا بأس بها. واجهة برمجة التطبيقات REST ليست على ما يرام.

لم أفعل بالضبط نفس الشيء ولم أتمكن من تكرار المشكلة على أحدث رمز يعمل مباشرة - فقد تصرف كما هو متوقع مع تعطيل إعداد normalize emails:

هل يمكنك إظهار مخرجات هذه من وحدة تحكم rails:

[1] pry(main)> SiteSetting.normalize_emails

[2] pry(main)> User.find_by_email('YOURUSERNAME@gmail.com').username

[3] pry(main)> User.find_by_email('YOURUSERNAME+1@gmail.com').username

أيضًا، ما هو إصدار Discourse الذي تستخدمه؟

قد أتحقق مرة أخرى من أنك تصل إلى موقع الإنتاج الخاص بك وليس موقع الاختبار الخاص بك (أو العكس).

إعجابَين (2)

لقد قمت بالتحديث الآن

ها هي

ماذا تترجم هذه؟

(وهل يمكنك نسخها ولصقها هنا)

كان يجب أن أسأل هذا أولاً :man_facepalming:

“Primary email مجاز نیست.”

it is a translation for user.email.blocked

هممم
يبدو أن البريد الإلكتروني الموحد محظور. :thinking:
أعني، إذا كان البريد الإلكتروني@gmail.com محظورًا، فإن البريد الإلكتروني+1@gmail.com محظور أيضًا. هذا غريب بالنسبة لي عندما لا يكون لدي خيار البريد الإلكتروني الموحد محددًا.

لهذا السبب كان يجب أن أسأل أولاً بدلاً من افتراض أنه “تم حجزه بالفعل” :rofl:
ما هي الإعدادات التي تم تجاوزها لديك في فئات البريد الإلكتروني والمستخدم؟
هل قمت بحظر عنوان البريد الإلكتروني هذا، أو، على سبيل المثال، نطاق Gmail؟

إعجاب واحد (1)

لم أفهم هذا. أين يجب أن أتحقق؟

نعم، يمكنني رؤية البريد الإلكتروني المعياري محظورًا.

في هذه الحالة، نقوم على الأرجح بحظر العناوين الفرعية للعناوين المحظورة بغض النظر عن الإعداد كإجراء لمكافحة المضايقات نظرًا لأن خيار التطبيع ليس هو الخيار الافتراضي.

“إظهار المُستبدلة فقط” في الإعدادات. ولكن الآن أشك في أننا لسنا بحاجة للقلق بشأن ذلك.

إعجابَين (2)

بالعودة إلى مكتبي، ألقيت نظرة على الكود الفعلي الذي يقوم بهذا الرفض:

في الأعلى مباشرة، نتحقق من البريد الإلكتروني القياسي مقابل القائمة المحظورة:

  def self.canonical(email)
    name, domain = email.split("@", 2)
    name = name.gsub(/\+.*/, "")
    name = name.gsub(".", "") if %w[gmail.com googlemail.com].include?(domain.downcase)
    "#{name}@#{domain}".downcase
  end

وحتى لو لم يكتشف ذلك، فسيتم اكتشافه بواسطة فحص مسافة ليفنشتاين هنا:

[1] pry(main)> ScreenedEmail.levenshtein('fakezabanshenas@gmail.com', 'fakezabanshenas+1@gmail.com')
=> 2

حيث أن القيمة الافتراضية لـ SiteSetting.levenshtein_distance_spammer_emails هي 2.

إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.