سؤال

لقد كنت أستخدم API الرسم البياني Facebook (يستخدم OAuth 2.0 للمصادقة) بنجاح لفترة من الوقت الآن. أحتاج الآن إلى كتابة API الخاصة بي والتي تسمح للمطورين بالاتصال بها بطريقة مماثلة. لقد نظرت إلى مكتبات مختلفة ولكني أحب شيئا أصغر قليلا لذلك قررت لفة بلدي. بالنظر إلى التعليمات البرمجية لدي لمصادقة مستخدم على Facebook يبدو بسيطا نسبيا ولكن يرجى تصحيح لي إذا كنت أخرج المسار.

أولا، أود أن أقدم صفحة آمنة التي يحتاجها المستهلك إلى إعادة توجيهها إلى. على سبيل المثال https://api.mydomain.com/oauth/authorize؟client_id=consumer_key&؛ Redirect_url= CallBack_url . سيحقق المستخدم من التطبيق، ثم أعيد توجيه العودة إلى عنوان URL المتوفر في عنوان URL رد الاتصال مع OAuth_Token في سلسلة الاستعلام. أفترض أنني يمكن أن أقوم بإنشاء سلسلة فريدة من نوعها عشوائيا هنا لل Oauth_token وتخزينها ضد المستخدم لهذا المستهلك المعين (تحرير: يرجى الاطلاع على الإجابة أدناه، يجب أن يكون هذا فريدا لكل تطبيق مستهلك وليس المستخدم).

هذه الخطوة 1 في الطريق. أحتاج الآن إلى توفير صفحة آمنة ثانية والتي سيؤدي المستهلك إلى طلب طلب ويب إليه. على سبيل المثال https://api.mydomain.com/oauth/access_token؟client_id= consider_key &؛ client_secret= المستهلك_secret & oauth_token= oauth_token_returned_above . هذا من شأنه أن يسمح للمستهلك بتبادل OAuth_token المعروض أعلاه للحصول على رمز الوصول. سأكون مرة أخرى إنشاء سلسلة فريدة من نوعها عشوائيا وتخزينها ضد المستخدم لهذا المستهلك معين.

الآن سيقبل واجهة برمجة التطبيقات الخاصة بي من أجل الأساليب التي تحاول الاستيلاء على المعلومات الخاصة للمستخدم الذي يستخدمه.

أود أن أعرف إذا فهمت الأشياء بشكل صحيح. يبدو أن المواصفات OAuth 2.0 تافهة للغاية إذا كان هذا هو الحال. أيضا لماذا يتعين علينا استبدال Oauth_token مع Access_token؟ لدي فكرتي الخاصة ولكنني أقدر ذلك إذا كان شخص ما يمكن أن يساعد في توضيح ذلك.

كنت أقدر حقا ملاحظاتك لأنني لا أرغب في المضي قدما وتضيع ساعات نية هذا عندما تكون مخطئا تماما.

شكرا

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

المحلول

في الواقع مخططات تدفق البروتوكول سيكون مفيدا للغاية لتصور المواصفات مثل OAuth 2 ولكن لا توجد بعض الجزريات فقط. كما قمت بتنفيذ مكتبة Oauth 2 فقط من جانب العميل، يمكنني التحقق من أنك على المسار الصحيح. ولكن هنا هو الصيد:

oauth_token ينتمي إلى تطبيق العميل الخاص بك (I.E. قارئ Facebook لسطح المكتب) الذي يصادف تطبيقك (تماما مثل معرف). يمكنك إرسال هذا لاستعادة Access_Token، وهو محدد لتطبيقك وقم بتسجيل الدخول المستخدم، والذي يسمح لك بالوصول إلى الموارد المحظورة المتعلقة بالمستخدم.

هنا عملية مصادقة تطبيق سطح المكتب الأساسية (مأخوذة من: http://developers.gigya. com / 020_developer_guide / 85_rest / oauth2 )

it oauth 2.0

في الواقع Digram تدفق مع الجدول الزمني (من أعلى إلى أسفل، مأخوذة من: http://www.ibm.com/developerworks/web/library/wa-oauthsupport/؟ca=drs-

تدفق البروتوكول

وأخيرا الإجراء الكامل هو: (مأخوذة من http://h2anetwork.org/projectdocs/ dpi / dpi_framework.html )

تدفق بروتوكول OAUTH

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