إعادة توجيه خادم OAUTH على النجاح أو الخطأ ، استخدم HTTP Redirect أو JavaScript؟

StackOverflow https://stackoverflow.com/questions/3869197

سؤال

سيقوم جميع مزودي Oauth المصادقة عليهم بإعادة توجيهك إلى صفحة تقول شيئًا مثل "شكرًا ، إعادة توجيهك ..." ويستخدم JavaScript لإعادة توجيهك إلى Redirect_uri المقدم. كنت أعتقد أنه كان أبسط وأسرع لإعادة إعادة توجيه HTTP. لماذا يتم ذلك دائمًا بهذه الطريقة؟

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

المحلول

رأس موقع 302 حسب http 1.1 يشبه هذا:

Location       = "Location" ":" absoluteURI

absoluteURI بالنسبة الى بناء الجملة العام URI لا يشمل معرف الشظية. يتم استدعاء الشخص الذي يمتلك الشظية URI-reference:

URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]   

تم وصف التفاصيل في سؤال @Levik: شظية URL و 302 إعادة التوجيه. أنا الآن أتعلم ذلك بالطريقة الصعبة ، لكن جوهره هو أن 302 مع جزء لا يبدو أنه يعمل مع IE8.

من المحتمل أن يكون استخدام JavaScript أكثر موثوقية لأنك من المفترض أن تمرير رموز الوصول عبر الجزء.

يحرر: أنا الآن أعرف ما حدث مع IE8. IE لا يحترم معرف الشظية في رأس الموقع ، لكنه يتجاهل واحد من المصدر URI. كان عنوان URL الخاص بي إعادة التوجيه http://example.com/oauth, ، الذي كان لدي إعادة توجيه تلقائي إلى HTTPس, https://example.com/oauth.

  1. Oauth يعيد توجيه إلى http://example.com/oauth#access_token=foo.
  2. يعيد توجيه الخادم الخاص بي إلى https://example.com/oauth.

بين الخطوة 1 و 2 ، ألقى IE8 معرف الشظية ، بينما تم إعادة توجيه بعض المتصفحات الأخرى https://example.com/oauth#access_token=foo.

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

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