WHAT IS OAUTH

Mar 27, 2022 Copy Link

لو كنا عايزين نعمل أكونت علي Instagram مثلاً ونروح نضغط علي زرار Login With Facebook محدش سئل نفسه إزاي العملية دي بتحصل ؟ أو بمعني تاني هل لما نضغط علي Login With Facebook فيسبوك بتشير الباسورد بتاعك مع Instagram عشان تحصل عملية الدخول ؟
 
الإجابة هتكون لأ طبعا لان Facebook هي أمينة جداً علي البيانات الحساسة اللي زي دي ... طيب السؤال هنا إزاي العملية دي بتحصل؟
 
العملية دي بتم بإستخدام حاجة إسمها OAUTH ... إيه هو ال OAUTH ؟
 
الكلمة دي إختصار ل Open Standard Authorization دي حاجة بت provide application حاجة إسمها  Secure Designated Access بمعني إنها بتديك الصلاحية إنك توصل لبعض المعلومات في ال application دا يعني لما نضغط علي زرار Login With Facebook أكنك بتقول ل Facebook إن Instagram تاخد معلومات البروفايل بتاعك علي فيس بوك زي إسمك أو صورة البروفايل و معلومات تانية بس مش حساسة زي الباسورد
 
واللي بيحصل إن ال OAUTH دا مش بيشير الباسورد بتاعك بس بيوفر حاجة اسمها Authorization Token دا بي prove identity ما بين ال consumer اللي هو Instagram و ال service provider اللي هي Facebook.

بشكل أوضح إن Facebook بتبعت token ل Instagram عشان تستخدمه بدل ماتبعت الباسورد بتاعك عشان تسجل الدخول والعملية دي بتم عشان Facebook عايزة تعرف إن اللي عايز يسجل دخول علي Instagram هو هو نفس الشخص اللي عايز يعمل Login With Facebook والعملية دي بنسميها Authorization ودلوقتي هنشوف كلمتين 
شبه بعض اوي وبعض الناس ميعرفوش الفرق بينهم وهما ال Authorization وال Authentication 
 
ال Authorization وهي إنك بتاخد الإذن عشان تعمل حاجة مُعينة زي ما Instagram أخدت الإذن من Facebook عشان تحصل عملية الدخول.
 
إنما ال Authentication هي بتحصل عشان تتأكد إنك فعلاً الشخص الصح عشان عارف شوية أسئلة بمعني إن Facebook ممكن تسئلك شوية أسئلة إنت عاملها private عشان تتاكد إنك فعلاً الشخص الصحيح.
 
خلونا نتخيل إن محمد مثلاً غني وعنده سواق خاص ومحمد إعطي للسواق دا مفتاح العريبة عشان يسوقها فممكن نقدر نشبه مفتاح العربية (valet key) بال OAUTH بحيث إنه يخلي السواق إنه يحرك العربية لأن ميقدرش يخليه يفتح صندوق العربية (trunk/glove box) فاهكذا لما طلبنا من Facebook معلومات من خلال ال Instagram دا مش معناه إن Instagram تقدر تاخد باسورد ال Facebook ... طيب عايزين نعرف ال OAUTH بتشتغل ازاي ؟
 
عشان نعرف إزاي هنتخيل محادثة بين 3 أشخاص محمد وعلي و Twitter ومحمد دا هو ال user وعلي هو ال consumer و Twitter هو ال service provider
 

المحادثة بين محمد و علي

 
محمد: علي أنا عايزك تنشر لينكات بشكل مباشر من علي الاكونت بتاعي علي Twitter
 
علي: جميل أنا هاخد الإذن من Twitter بالنشر
 

المحادثة بين علي و Twitter

 
علي: أنا عندي user وحابب إني أنشر علي الأكونت بتاعه ممكن تعطيني ال token ؟
 
Twitter: تمام دا security token and secret
 

المحادثة بين محمد وعلي

 
علي: أنا بعتلك طلب يا محمد من خلال ال Twitter إقبله وخلي ال token معاك
 
محمد: تمام
 

المحادثة بين محمد و Twitter

 
محمد: يا Twitter أنا عايز أعمل authorize لل token اللي أخدته من علي
 
Twitter: تمام إنت عايز تسمح ل علي إنه يعمل x,y and z بالأكونت بتاعك علي Twitter
 
محمد: تمام أنا موافق
 
Twitter: تمام إرجع ل علي وقوله إنه يستخدم ال request token.
 

المحادثة بين علي و Twitter

 
علي: ممكن يا Twitter أبدل ال request token بال access token
 
Twitter: ايوه ممكن إتفضل ال access token secret
 
علي: يا Twitter أنا عايز أنشر لينكات من علي حساب محمد
 
Done ! :Twitter

Share via

Mahmoud Ramadan

Mahmoud Ramadan

Mahmoud is the creator of Digging Code and a contributor to Laravel since 2020.

Most recent

  • How to generate Arabic PDF using TCPDF

    How to generate Arabic PDF using...

    FREE

  • What is SQL Injection

    What is SQL Injection

    FREE

  • Leveraging virtual generated columns in MySQL using Laravel

    Leveraging virtual generated col...

    FREE