هل من الممكن إضافة Slack كخيار لتسجيل الدخول الموحد (SSO) في Discourse؟
رأيت موضوعًا قديمًا حول هذا (مُربوط أدناه)، لكنه إما حُذف أو جُعل خاصًا. نرحب بأي اقتراحات. أعرف أن هناك تكاملًا للدردشة، لكنني أرغب في السماح لمستخدمي Slack بتسجيل الدخول باستخدام حساباتهم أيضًا. شكرًا.
هذا المقال يتحدث عن كيفية استخدام Slack كعميل لتسجيل الدخول الموحد (SSO).
هناك ميزة “تسجيل الدخول باستخدام Slack” التي تستخدم بروتوكول OAuth2: Using Sign in with Slack | Slack Developer Docs على الرغم من أنني لم أجربها من قبل.
تبدو وثائق تسجيل الدخول مثالية كإضافة ممتازة جديدة لمنصة Discourse. لقد قمت بتفعيل تكامل الدردشة، وهو أمر رائع أيضًا. لكنني أشعر بأنني غير مؤهل قليلاً حول كيفية إضافة هذا الزر كخيار مخصص مع اختبارات Discourse المارة (tests-pass). بمجرد حل هذه المسألة، سيتكامل تسجيل الدخول الاجتماعي هذا بشكل جميل مع خيارات تسجيل الدخول الاجتماعي المماثلة مثل Github وPatreon.
باتباع الوثائق، قمت بإنشاء تطبيق مع وصول Oauth في Slack… والآن عند هذه الخطوة لإنشاء الزر.
ما يعرضه Slack:
معرف التطبيق
معرف العميل
سر التوقيع
سر العميل
رمز التحقق
رمز وصول Oauth
تمت إضافة redirect url كـ https://example.domain.com/slack/auth
الخيارات التي أراها في Discourse هي:
enable sso provider sso url – عنوان URL لنقطة نهاية تسجيل الدخول الموحد (يجب أن يتضمن http:// أو https://) sso secret – سلسلة سرية تُستخدم لمصادقة معلومات SSO تشفيريًا، تأكد من أنها تتكون من 10 أحرف أو أكثر
أحاول الإعداد باستخدام هذه الوثائق:
يدعم Slack النطاقات التالية: identity.avatar - عرض صورة الملف الشخصي الخاصة بالمستخدم على Slack identity.basic - عرض معلومات حول هوية المستخدم identity.email - عرض عنوان البريد الإلكتروني للمستخدم identity.team - عرض اسم مساحة العمل الخاصة بالمستخدم على Slack
سيكون من الجيد عرض صورة الملف الشخصي الخاصة بمستخدم Slack وربما اسم مساحة العمل أيضًا. يبدو أن الوصول إلى بريدهم الإلكتروني سيكون مفيدًا أيضًا نظرًا لأهميته الحاسمة عند استخدام Discourse.
حسناً، يبدو أن تفعيل SSO في ذلك الدليل سيتجاوز تماماً جميع إعدادات تسجيل الدخول/التسجيل الأخرى.
تمكنت من جعل SSO من Slack يعمل باستخدام:
سلسلة SSO = https://slack.com/oauth/v2/authorize?user_scope=identity.basic&client_id=EXAMPLE
سر SSO = سر العميل
لكنني أريد فقط إضافته كزر. أقدر أي اقتراحات حول كيفية تنفيذ هذا الزر في Discourse!
جميع القطع موجودة، لكنني لم أستطع فهم الأمر في ذلك الوقت. مرّ بعض الوقت، وأقول جربها! استخدم لوحة OAuth الخاصة بـ Slack بصفتك مسؤولًا وحاول إضافتها إلى Discourse.