كيفية الرقص على OAuth: درس خطوة بخطوة

خمسة ستة سبعة ثمانية!

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

مجرد تجربة الأشياء حتى يعمل شيء ما.

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

لذا ، هذه المرة ، قررت التوقف عن الرغبة في ذلك وجعله بنفسي ، باستخدام آخر شيء تعلمته.

وهذا الشيء كان OAuth 2.0.

ما هو OAuth؟

لنبدأ بالأساسيات: OAuth تعني Open Authorization. إنها عملية يمكن من خلالها للتطبيق أو موقع الويب الوصول إلى بيانات المستخدم الخاص من موقع ويب آخر.

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

لقد استخدمت هذا بالفعل ما لا يقل عن gazillion مرة ، وفي الحقيقة استخدمته في كل مرة تنقر فيها على "تسجيل الدخول باستخدام Facebook / Google / GitHub / ...". بعد ذلك ، تم عرض شاشة موافقة لك تعرض أي معلومات من ملفك الشخصي على Facebook (دعنا نقول) التي تسمح بذلك ، hot-new-app.com بقراءة (وأحيانًا الكتابة). بعد ذلك ، بما أن ذلك-hot-new-app.com يثق في الهوية التي يوفرها Facebook ، فيمكنهم إنشاء ملف تعريف لك في قاعدة بياناتهم باستخدام البيانات التي تلقوها.

التواصل بين that-hot-new-app.com و Facebook عادة ما ينتهي هنا. لهذا السبب لن تتغير صورة ملفك الشخصي في جميع أنحاء الإنترنت إذا غيرتها على Facebook. إنهم لا يعودون أبدًا إلى Facebook ويطلبون تحديث البيانات.

عندما تبدأ إيقاعات ماريمبا للعب…

هناك غرض آخر لبناء هذا النوع من الآليات ، إحداها ذات إمكانات أكبر: استخدام مزود الهوية كمزود خدمة (بطريقة مستمرة). وهذا يعني التواصل معها بانتظام لتوفير ميزات محسنة للمستخدمين.

مثال جيد على ذلك هو Relive ، وهي خدمة تتصل بتطبيقات تتبع رياضية مختلفة لإنشاء مقاطع فيديو تعرض Earth على الركض أو الركوب. في كل مرة تنهي فيها نشاطًا ، يطالبك Relive بعرض إنشاء فيديو منه. إذا قلت "نعم" ، فسوف يقومون بمعالجتها ، وإعلامك عندما يكون جاهزًا للمفاخرة بوسائل التواصل الاجتماعي ... أقصد المشاركة "

لا يوجد فرق فني بين هذين الاستخدامين. لهذا السبب يجب أن تكون حذرًا بشأن مكان تسجيل الدخول باستخدام الوسائط الاجتماعية أو حساب Google / Gmail.

قد يبدو الأمر مخيفًا ، لكن لا يوجد ما يدعو للخوف حقًا. فقط ضع في اعتبارك أنك تخوّل ذلك-hot-new-app.com بالوصول إلى تلك المعلومات الخاصة بك المفصلة في شاشة الموافقة ، وربما على أساس متكرر. كن على دراية بالأذونات التي تمنحها ، وتأكد من معرفة كيفية تعطيلها كلما لم تعد تشعر بالثقة.

على سبيل المثال ، إذا كنت تستخدم حساب Google الخاص بك للوصول إلى ذلك- hot-new-app.com ولكنك لا ترغب في السماح بذلك بعد الآن ، فما عليك سوى الانتقال إلى إعدادات حساب Google وتعطيل وصولهم.

جميع مقدمي الهوية الرئيسية توفر السيطرة على هذا.

حسنًا ، لكن كيف ترقص OAuth؟

قبل أن تهبط على ذلك- hot-new-app.com وحتى تنقر على "تسجيل الدخول باستخدام YourFavoriteIdentityProvider" ، يتعين على شخص - ربما مطور - إنشاء تطبيق على موقع المزود.

هذه طريقة لتسجيل ذلك- hot-new-app.com بحيث يعرف مقدم الخدمة فيما بعد من يطلب البيانات الخاصة.

في هذه الخطوة ، سيقوم المطور بإعداد بعض المعلومات حول التطبيق ، مثل اسم التطبيق أو موقع الويب - والأهم من ذلك - إعادة توجيه URI. سيستخدم الموفر (مثل Google أو Facebook) هذا للاتصال بالتطبيق المطلوب وإخبارهم أن المستخدم قد أجاب نعم

أعدك أنك لن تضطر إلى كتابتها باليد ، ونحن نفخر على عدم استخدام الورق.

بمجرد أن يتم تسجيل التطبيق ، سيعطي الموفر هذا-hot-new-app.com عميلاً و clientSecret الذي سيتم استخدامه في الاتصالات بينهما. أنها تعمل نوع من مثل اسم المستخدم وكلمة المرور للتطبيق.

ستحصل على معرف العميل و clientSecret مباشرة بعد النقر فوق

من المهم جدًا أن تحافظ على عميلك في مكان آمن ولا تشاركه مع الغرباء. إذا تمكن شخص ما من الوصول إليه ، فيمكنه طلب بيانات مستخدم خاص من الموفر نيابة عنك ، ثم استخدامها للشر!

نحن لا نريد ذلك.

الأيدي على الخصور أو الكتفين

بصرف النظر عن إعداد كل هذه الأشياء ، يتعين على المطور معرفة نوع البيانات التي يمنحها الموفر الوصول إليها ، وكيف يتم تقسيمها.

تُعرف هذه "القطاعات" بالنطاقات وتعرف حقوق الوصول ، وعادةً ما يتم فصلها في فئات القراءة / الكتابة. لذلك ، على سبيل المثال ، يمكن أن يطلب hot-new-app.com طلب نطاق "ملف تعريف: قراءة" و "جهات اتصال: قراءة". هذا يعني أنه يمكنهم قراءة كل ما يعينه الموفر إلى قطاعات "الملف الشخصي" و "جهات الاتصال". لا يمكن الوصول إلى أشياء أخرى ، مثل مشاركاتك أو المحتوى الذي تريده.

حسنًا ، فقط لتبسيط الأمور في الوقت الحالي ، دعنا نقول أن ذلك- hot-new-app.com هو موقع ويب يتكامل مع Typeform ، وهي خدمة لإنشاء نماذج جميلة وذكية وأيضًا الشركة التي أعمل بها. أنت بالتأكيد ترغب في الحصول على أفضل شيء في الوقت الحالي ، وبسرعة ، لذلك على موقعه على الويب ، يمكنك النقر فوق "تسجيل الدخول باستخدام Typeform" للحصول على الحق في العمل. ماذا بعد؟

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

الملاحظات الملونة تجلب الفرح لقلبي

تخويل: الخطوة الأولى في الرقص OAuth

لذلك ، تأخذ زمام المبادرة وانقر على "تواصل مع Typeform". هنا ، هذا-hot-new-app.com (THNA من الآن فصاعدًا ، لأنني سئمت من كتابة الكلمات المفصولة بشرطة) سوف يرسل لك إلى Typeform لتخويل نقطة النهاية (/ oauth / تخويل) وتقديم:

  • عميلهم (تذكر ، اسم مستخدم THNA)
  • النطاقات المطلوبة (أو حقوق الوصول)
  • وإعادة توجيه URI مرة أخرى (يعرف Typeform ذلك بالفعل من عند إعداد كل شيء ، لكننا نرسله مرة أخرى كطبقة إضافية من الأمان)

سيبدو عنوان URL هذا كما يلي:

https://api.typeform.com/oauth/authorize؟client_id=yourClientId&scope=accounts:read+forms:read+results:read

ستستخدم Typeform هذه المعلومات لإنشاء شاشة موافقة حيث يمكنك مراجعة نوع الأشياء التي تخول THNA رؤيتها والقيام بها.

بمجرد قراءة ما توافق عليه تمامًا والنقر على "سماح" بسعادة ، سوف يرسل لك Typeform إلى URI لإعادة التوجيه مع مؤقت ، مثل:

https://that-hot-new-app.com/auth/redirect؟code=xxxXXXxxxXXXxxx

الرمز: يستغرق 2 إلى tangOAuth

كل هذا ذهابًا وإيابًا يبدو وكأنه يأخذك شخص ما لتدور التانغو ، أليس كذلك؟

الخطوة الثانية من رقص OAuth هي عندما يستلم THNA هذا الرمز ، ويتبادله مع رمز OAuth.

لذلك تأخذ THNA هذه الشفرة وترسلها مرة أخرى إلى Typeform ، إلى جانب URI لإعادة التوجيه (نعم ، مرة أخرى!) ، وسر العميل (كلمة مرور التطبيق!).

كمكافأة على رقص رقص جيدًا ، ستحصل THNA على رمز OAuth Token اللامع ، والذي يمكنه استخدامه للتفاعل مع Typeform نيابة عن المستخدم ، وهذا هو ... أنت!

البقاء معي ، التأثير في معي

من الآن فصاعدًا ، في كل طلب تقدمه THNA إلى Typeform نيابة عنك ، سيتعين عليها تضمين رأس التفويض مع رمز الوصول هذا. باستخدامه ، يمكن لـ Typeform (أو أي مزود آخر) تحديد:

  • من يطلب البيانات (في هذه الحالة ، THNA)
  • من هي البيانات الخاصة بك (أنت!)
  • وتأكد أيضًا من حصولهم على التفويض الصحيح للوصول إلى تلك البيانات (فقط ما وافقت عليه).

على استعداد للرقص

والآن بعد أن تعرفت كل الخطوات والإحداثيات الخاصة بتقنية OAuth للرقص ، يجب أن تكون مستعدًا لإنشاء تصميمات الرقص الخاصة بك ، أعني ، الدمج ، وجعل الإنترنت مكانًا أكبر.

رسومات لك حقًا ، صورة غلاف لـ Gez Xavier Mansfield على Unsplash.