سؤال

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

حاولت استخدام encoderedirecturl للحصول على الجلسة للاستمرار في الموقع الخارجي ولكن هذا لا يعمل. تحتاج مساعدة!

لا يوجد حل صحيح

نصائح أخرى

عليك إضافة معرف الجلسة باسم jsessionid جزء من عنوان URL رد الاتصال. يجب على تويتر التراجع إلى http://example.com/callbackservlet ؛ jsessionid=1e6fec0d14d044541dd84d2d013d29ed (ملاحظة: قيمة JSessionID هنا مجرد مثال).

ال HttpServletResponse#encodeRedirectURL()encodeURL()) لن يشفر عنوان URL عندما يدعم العميل بالفعل ملفات تعريف الارتباط. تحتاج إلى تعديلها بنفسك.

String url = "http://example.com/callbackservlet";
String encodedURL = url + ";jsessionid=" + request.getSession().getId();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top