إعداد التسجيل الدخول باستخدام Auth0 باستخدام ملحق OAuth2 Basic

(oauth2_basic) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected

Any ideas?

Is it possible to make Auth0 the only possible way to register and login?

Yes, just disable all the other login methods. (including the enable local logins setting)

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

Is it possible to just redirect to the Auth0 signup and not display the basic signup form?

If you want to hide all the Discourse login/signup UI, then you can turn off the enable local logins site setting

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

Thanks David. I did that but I’ve noticed that when I sign up using the modal and get redirected back to Discourse, it prompts again for a username and other details so it doesn’t look like Auth0 is passing that information back to Discourse. I’m wondering if the solution is to keep the modal simple with just email address and password on the Auth0 modal for registration and get the rest of the details on Discourse.
Problem is we want to keep the user data in one place using a custom database attached to Auth0.

how can i set logout redirect to i cant found anything about logout

لتطلب التحقق من عنوان البريد الإلكتروني فقط إذا لم يؤكده المستخدم بالفعل في Auth0، فإن قيمة مسار البريد الإلكتروني للتحقق من صحة oauth2 هي email_verified.

لقد وجدت هذا عن طريق تمكين إعداد تصحيح أخطاء oauth2 وفحص السجلات على <DISCOURSE_URL>/logs. عندما سجلت الدخول باستخدام حساب غير مؤكد، بدا الجسم كالتالي:

تصحيح أخطاء OAuth2:
user_json: {
  "sub"=>"auth0|XXXXXX",
  "nickname"=>"YYYYY+unprovenauth",
  "name"=>"YYYYYY+unprovenauth@ZZZZZZ.com",
  "picture"=>"https://via.placeholder.com/150",
  "updated_at"=>"2022-09-21T07:50:40.172Z",
  "email"=>"YYYYYY+unprovenauth@ZZZZZZ.com",
  "email_verified"=>false
}
إعجاب واحد (1)

@david
آمل أن تتمكن من المساعدة - أود تكوين Discourse لتسجيل الدخول باستخدام تسجيل دخول Microsoft XBL واعتقدت أن هذا المكون الإضافي قد يكون طريقة جيدة للبدء.

لقد نشرت هذا الموضوع في dev:

يوجد منتدى Minecraft Discourse يسمى “The Hive” يستخدم ما نريد القيام به - أنا فقط لا أستطيع العثور على مكون إضافي له. :slight_smile:

أهلاً بك!

هل هناك طريقة لفرض تسجيل الدخول للنشر في المجتمع، مع السماح بعرض المنشورات دون الحاجة لتسجيل الدخول؟

لقد قمنا بتمكين إضافة Auth0 لمجتمعنا. وأزلنا جميع أشكال تسجيل الدخول الأخرى والنشر المجهول - نريد بشكل أساسي التأكد من أن الأشخاص هم عملاء لدينا قبل أن ينشروا في مجتمع المستخدمين. ولكننا لا نزال نرغب في أن تكون المنشورات قابلة للعرض من قبل الآخرين حتى لو لم يقوموا بتسجيل الدخول.

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

شكراً!

يبدو أنك قمت بتفعيل خيار login required. عند تفعيله، يمكن فقط للأشخاص الذين لديهم حساب عرض منشورات المنتدى. يجب أن تكون قادرًا على استخدام SSO دون الحاجة إلى تفعيل هذا الخيار. :+1:

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

هل هناك طريقة لمنع تسليمها إلى المجتمع قبل التحقق من صحة البريد الإلكتروني؟

أواجه بعض المشكلات في إعداد هذا. بعد تمكين كل شيء ثم المرور بعملية التسجيل على Discourse الخاص بي، يتم إرسالها إلى Auth0 بشكل جيد ولكن عندما أعود أرى رسالة خطأ (“عفوًا، واجه البرنامج الذي يدعم منتدى المناقشة هذا مشكلة غير متوقعة. نعتذر عن الإزعاج.”).

بالنظر إلى السجلات أرى ما أعتقد أنه الخطأ:

ActiveRecord::NotNullViolation (PG::NotNullViolation: ERROR: null value in column "provider_uid" of relation "user_associated_accounts" violates not-null constraint

لقد تحققت مرة أخرى من أنني قمت بتكوين كل شيء وفقًا للتعليمات، ويبدو أن هذه المشكلة قد تكون ناتجة عن كون “مسار معرف مستخدم OAuth2 JSON” خاطئًا وأن هذا الحقل فارغ؟ لقد قمت بتعيينه على sub.