نستخدم تدفق SSO الخاص بـ Discourse الذي قمنا بتطبيقه بناءً على هذا الدليل: Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso)
لقد نجح الأمر معنا بشكل جيد. لكننا نريد الآن السماح للمستخدمين في نظامنا بتغيير بريدهم الإلكتروني، ويبدو أن هذا يؤدي إلى مشاكل.
عندما أقوم بتغيير البريد الإلكتروني لمستخدمي في نظامنا، يتوقف عمل SSO مع Discourse.
خطأ في تسجيل الدخول
هناك مشكلة في حسابك. يرجى الاتصال بمدير الموقع.
أظن أن Discourse يستقبل حمولة (payload) تحتوي على بريد إلكتروني واسم مستخدم غير متطابقين ولا يعرف ماذا يفعل.
ما هي الطريقة الجيدة للتعامل مع هذا؟
أفضل فكرة توصلت إليها هي استخدام واجهة برمجة تطبيقات Discourse لتغيير بريد المستخدم الإلكتروني في Discourse ليتطابق مع بريده في نظامنا قبل بدء عملية SSO.
لكنني لا أعرف ما إذا كان ذلك ممكنًا. فيما يلي محاولتي الفاشلة.
إليك طلبي:
https://forum-stage.{domain}.com/users/{username}/preferences/email
Headers:
Content-Type: application/x-www-form-urlencoded
Accept: application/json
Body (as x-www-form-urlencoded in Postman):
email: testemail@testdomain.com
api_key: 75a...77d
api_username: system
وهذه هي الاستجابة التي تلقيتها:
{
"errors": [
"You are not permitted to view the requested resource."
],
"error_type": "invalid_access"
}