سؤال

أنا أستخدم OAUTH في تطبيق الويب الخاص بي ، ويمكن للمستخدمين تسجيل الدخول مع Twitter.

أرغب في إضافة زر "Switch Twitter Account" ، والذي يقوم بمسح الجلسة فعليًا ثم يفتح التفويض.

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

هل هو ممكن مع واجهة برمجة التطبيقات؟ ما هي أفضل طريقة لتنفيذ هذا؟

هل كانت مفيدة؟

المحلول

يتم تعريف الجلسة مع Twitter بواسطة ملف تعريف ارتباط مملوك لشركة Twitter - وهو شيء لا يمكنك التحكم فيه. لا يمكنك تسجيلها من Twitter نيابة عنهم.

إذا كنت تريد أن يتمكن شخص ما من استخدام وظيفة "Switch Twitter" ، فستحتاج إلى تمريره إلى مصافحة OAuth مرة أخرى ، ولكن استخدم /oauth/authorize المسار بدلا من /oauth/authenticate طريق. سيسمح هذا للمستخدم بتبديل بيانات اعتماد المستخدم الخاصة به على Twitter أثناء المصافحة بدلاً من إعادة صياغة فقط باستخدام جلسة Twitter الحالية.

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

نصائح أخرى

يمكنك استخدام OAuth/المصادقة والإضافة force_login=true كما هو محدد في الحصول على Oauth/المصادقة. سيؤدي ذلك إلى دفع المستخدم بنموذج تسجيل الدخول.

آسف للتعليق كإجابة. يعمل حل Abraham بشكل رائع ، ولكن من أجل مسح حقل اسم المستخدم ، تحتاج أيضًا إلى إضافة screen_name= للحصول على الطلب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top