توقف Discord عن طلب المصادقة في كل تسجيل دخول

مرحباً!

لقد قمت بإعداد تسجيل الدخول عبر ديسكورد في تثبيتي المستضاف ذاتيًا. إنه يعمل بشكل رائع… باستثناء شيء صغير واحد.

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

على أي حال، كيف يمكن إصلاح هذا؟ لقد اتبعت التوثيق.

3 إعجابات

هل يواجه أحد هذه المشكلة؟

إعجابَين (2)

نعم، جربت على منصتي ويمكنني تكرار المشكلة.

إعجابَين (2)

هل ترى نفس السلوك على مواقع أخرى تقدم “تسجيل الدخول باستخدام Discord”؟ إذا كان الأمر كذلك، فقد يكون هذا هو السلوك المتوقع لنظام تسجيل الدخول الخاص بـ Discord، بدلاً من كونه مشكلة خاصة بـ Discourse.

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

هذا مرتبط بـ Discourse.

هل هناك مثال عام يمكنك مشاركته حتى نتمكن من تجربته ومقارنة التنفيذ؟

لست متأكدًا مما تعنيه بالمثال العام، أعتذر.

لكن هذا ليس المعيار. يجب أن يتطلب ذلك توثيق ديسكورد فقط لأول مرة فقط.

أعني:

هل يمكنك مشاركة رابط لأحدها؟ عندها قد نتمكن من إلقاء نظرة على كيفية تنفيذها، وتعديل Discourse لمطابقتها.

هذه لوحة رسائل أتردد عليها، لكنها ليست برنامج Discourse.

https://famiboards.com/

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

أتساءل عما إذا كان ذلك بسبب المعلمة prompt المفقودة (prompt) إلى none في عنوان URL للمصادقة؟

تتحكم prompt في كيفية تعامل تدفق المصادقة مع الموافقات الموجودة. إذا وافق المستخدم سابقًا على تطبيقك بنطاقات مطلوبة وتم تعيين prompt إلى consent، فسيطلب منهم إعادة الموافقة على تفويضهم. إذا تم تعيينه إلى none، فسيتم تخطي شاشة المصادقة وإعادة توجيههم مرة أخرى إلى عنوان URI الخاص بك دون طلب موافقتهم.

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

أعتقد أنك قد تكون على وشك اكتشاف شيء ما. لقد وجدت هذا.
https://community.auth0.com/t/discord-connection-prompts-for-consent-every-login/135157
ربما يمكن تحديث هذا داخل Discourse؟ على حد علمي، هذا ليس شيئًا يمكنني القيام به في لوحة الإدارة الخاصة بي، أو في بوابة مطوري Discord.

إعجابَين (2)

هناك إعداد موجه للمصادقة عبر جوجل في Discourse، وأعتقد أنه من المنطقي إضافة واحد لــ Discord.

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

لقد لاحظت ذلك أيضًا.

هل تعرف على وجه التحديد أين يتم تثبيت ملف إعداد تسجيل الدخول هذا ضمن Discourse؟ أفكر في وضع

"upstream_params": {
			"prompt": {
				"value": "none"
			}
		},

داخل الملف وإعادة البناء، لمعرفة ما إذا كان ذلك يصلحه.

تعديل: من ناحية أخرى، لا أعتقد أنني قادر على تحديد موقع الملف الذي سيسمح لي بتنفيذ ذلك. أعتقد أن إصلاحًا من Discourse هو ما يلزم لجعل هذا يعمل كما هو متوقع.

بما أن لدي المشكلة في نسختي:

نعم، انتظر الأخبار من الفريق :+1:

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

رائع. هل أحتاج إلى فعل أي شيء آخر (بخلاف انتظار التحديث؟)

أفترض أنه لا يوجد وقت تقديري حقيقي لإصلاح كهذا، وأنه يعتمد على تدفق حالة الاستعجال. إنها مجرد مشكلة بسيطة، على ما أعتقد. ولكن سيكون من الرائع رؤيتها تصلح!

تغيير لإضافة prompt=none يبدو جيدًا بالنسبة لي. إذا تمكن شخص ما من الكتابة والاختبار وإنشاء طلب سحب (PR)، فسيساعد ذلك في تسريع التغيير.

الملف ذو الصلة سيكون هذا، لكنني لا أعرف على الفور بالضبط ما هو التغيير المطلوب.

إعجابَين (2)

بالنظر إلى الملف، أضفت

option :authorize_params, prompt: 'none'

تحت

option :authorize_options, %i[scope permissions]

في تثبيتي المستضاف ذاتيًا.
إنه يعمل إلى حد ما… ولكن ليس كما نريد.
لا يزال يأخذك إلى صفحة مصادقة Discord، ومع ذلك، لم يعد يتعين على المستخدم النقر فوق authorize. ستتم إعادة تحميل الصفحة ثم تعيدك إلى صفحة Discourse الخاصة بك.
خطوة إلى الأمام، خطوة أخرى إلى الوراء. :melting_face:

تعديل: أرى @Arkshine واختبرت التغيير وحصلت على نفس النتيجة.

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

لقد أجريت اختبارًا سريعًا (https://discourse.arkshine.dev/):

يعرض صفحة المصادقة ولكنه يعيد التوجيه تلقائيًا.

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

حتى مع التغيير، فإنه لا يزال ينتقل بك إلى صفحة المصادقة الخاصة بـ Discord - وهو ما لا ينبغي فعله (على الرغم من أنك لا تحتاج هذه المرة إلى الضغط يدويًا على authenticate).

تقديم طلب سحب (PR) بالتغيير المقترح للأسف لن يحل المشكلة.