HandyCafe Docs
owner it-admin

OAuth سوشل لاگ ان کیسے سیٹ اپ کریں

یہ گائیڈ آپ کو سوشل لاگ ان کو ترتیب دینے کے عمل سے گزرتا ہے تاکہ گاہک اپنے گوگل، فیس بک، ایپل، X، یا ڈسکارڈ اکاؤنٹس کا استعمال کرتے ہوئے کلائنٹ پی سیز میں سائن ان کر سکیں۔ HandyCafe ڈیوائس اتھورائزیشن گرانٹ فلو (RFC 8628) استعمال کرتا ہے، جو ایسے ڈیوائسز کے لئے ڈیزائن کیا گیا ہے جن میں مکمل براؤزر نہیں ہوتا۔ گاہک اپنے فون سے QR کوڈ اسکین کر کے تصدیق کرتے ہیں۔

آپ کو کیا ضرورت ہوگی

  • HandyCafe سرور تک ایڈمن رسائی۔
  • گوگل OAuth کے لئے گوگل کلاؤڈ کنسول اکاؤنٹ یا دیگر پرووائیڈرز کے لئے مساوی ڈویلپر پورٹل تک رسائی۔
  • HandyCafe سرور آپ کے نیٹ ورک پر چل رہا ہو اور قابل رسائی ہو۔
  • لاگ ان فلو کو ٹیسٹ کرنے کے لئے کم از کم ایک منسلک کلائنٹ پی سی۔

HandyCafe میں OAuth ڈیوائس فلو کیسے کام کرتا ہے

سیٹ اپ میں جانے سے پہلے، یہاں فلو کا خلاصہ ہے:

  1. ایک گاہک ایک غیر فعال کلائنٹ پی سی پر سوشل لاگ ان بٹن (مثلاً "Sign in with Google") پر کلک کرتا ہے۔
  2. کلائنٹ سرور کو OAuth شروع کرنے کی درخواست بھیجتا ہے۔
  3. سرور پرووائیڈر کے ڈیوائس اتھورائزیشن اینڈ پوائنٹ سے رابطہ کرتا ہے اور ایک ڈیوائس کوڈ، یوزر کوڈ، اور ویریفیکیشن یو آر ایل وصول کرتا ہے۔
  4. کلائنٹ غیر فعال اسکرین پر ایک QR کوڈ اور یوزر کوڈ دکھاتا ہے۔
  5. گاہک اپنے فون سے QR کوڈ اسکین کرتا ہے اور پرووائیڈر کے ساتھ تصدیق کرتا ہے۔
  6. سرور پرووائیڈر کو پول کرتا ہے جب تک کہ تصدیق مکمل نہ ہو جائے۔
  7. سرور ایک OAuth لاگ ان درخواست بناتا ہے جو درخواستوں کے صفحے پر ظاہر ہوتی ہے۔
  8. ایک ایڈمن یا کیشئر درخواست کو منظور کرتا ہے۔
  9. ایک نیا ممبر اکاؤنٹ بنایا جاتا ہے (یا ایک موجودہ اکاؤنٹ کو لنک کیا جاتا ہے) اور گاہک لاگ ان ہو جاتا ہے۔

گوگل OAuth کیسے سیٹ اپ کریں

گوگل سب سے زیادہ استعمال ہونے والا پرووائیڈر ہے۔ یہ سیکشن گوگل کلاؤڈ پروجیکٹ بنانے سے لے کر پہلے لاگ ان کی جانچ تک ہر قدم کا احاطہ کرتا ہے۔

حصہ A: گوگل کلاؤڈ اسناد بنائیں

  1. اپنے براؤزر میں https://console.cloud.google.com پر گوگل کلاؤڈ کنسول کھولیں۔
  2. ایک نیا پروجیکٹ بنائیں یا ایک موجودہ پروجیکٹ منتخب کریں۔ اسے کچھ ایسا نام دیں جو پہچاننے میں آسان ہو جیسے "HandyCafe OAuth"۔
  3. APIs & Services > OAuth consent screen پر جائیں۔
  4. یوزر ٹائپ کے طور پر External منتخب کریں (جب تک کہ آپ کے پاس گوگل ورک اسپیس آرگنائزیشن نہ ہو اور آپ صرف اندرونی استعمال چاہتے ہوں)۔
  5. مطلوبہ فیلڈز کو پُر کریں: ایپ کا نام ("آپ کے کیفے کا نام")، یوزر سپورٹ ای میل، اور ڈویلپر رابطہ ای میل۔
  6. Save and Continue پر کلک کریں اور اسکوپس اور ٹیسٹ یوزرز سیکشنز کو جاری رکھیں۔ آپ کو خاص اسکوپس شامل کرنے کی ضرورت نہیں ہے۔ ڈیفالٹ ای میل اور پروفائل اسکوپس کافی ہیں۔
  7. APIs & Services > Credentials پر جائیں۔
  8. Create Credentials > OAuth client ID پر کلک کریں۔
  9. ایپلیکیشن ٹائپ کے لئے، TVs and Limited Input devices منتخب کریں۔ یہ اہم ہے۔ HandyCafe ڈیوائس اتھورائزیشن گرانٹ فلو استعمال کرتا ہے، جو اس خاص کلائنٹ ٹائپ کی ضرورت ہوتی ہے۔
  10. کلائنٹ کے لئے ایک نام درج کریں (مثلاً "HandyCafe Device Flow")۔
  11. Create پر کلک کریں۔
  12. تصدیقی ڈائیلاگ سے Client ID اور Client Secret کو کاپی کریں۔ انہیں محفوظ طریقے سے اسٹور کریں۔ آپ کو اگلے سیکشن میں دونوں ویلیوز کی ضرورت ہوگی۔

حصہ B: HandyCafe سرور کو ترتیب دیں

  1. HandyCafe سرور ایپلیکیشن کھولیں۔
  2. بائیں سائیڈبار میں گیئر آئیکن کا استعمال کرتے ہوئے Settings پر جائیں۔
  3. OAuth ٹیب منتخب کریں۔
  4. صفحے کے اوپر OAuth ٹوگل کو فعال کریں۔ یہ تمام کلائنٹ پی سیز پر سوشل لاگ ان کو عالمی طور پر فعال کرتا ہے۔
  5. پرووائیڈرز کی فہرست میں Google پرووائیڈر کی قطار تلاش کریں۔
  6. اس پرووائیڈر کو فعال کرنے کے لئے گوگل ٹوگل کو فعال کریں۔
  7. Client ID کو مرحلہ 12 سے کلائنٹ آئی ڈی فیلڈ میں پیسٹ کریں۔
  8. Client Secret کو مرحلہ 12 سے کلائنٹ سیکریٹ فیلڈ میں پیسٹ کریں۔
  9. ترتیب کو لاگو کرنے کے لئے Save پر کلک کریں۔

متوقع نتیجہ: OAuth ٹیب گوگل کو فعال شدہ دکھاتا ہے اور آپ کی اسناد بھری ہوئی ہیں۔ ترتیبات تمام منسلک کلائنٹس کو بھیجی جاتی ہیں۔

حصہ C: لاگ ان فلو کی جانچ کریں

  1. ایک منسلک کلائنٹ پی سی پر جائیں۔ غیر فعال اسکرین پر اب سوشل لاگ ان سیکشن کے ساتھ گوگل لاگ ان بٹن دکھانا چاہئے۔
  2. کلائنٹ کی غیر فعال اسکرین پر Google لاگ ان بٹن پر کلک کریں۔
  3. کلائنٹ ایک QR کوڈ اور ایک یوزر کوڈ (ایک مختصر الفانومیرک سٹرنگ) دکھاتا ہے۔
  4. اپنے فون سے QR کوڈ اسکین کریں۔ یہ گوگل کے ڈیوائس ویریفیکیشن صفحے کو کھولتا ہے۔
  5. گوگل اکاؤنٹ کے ساتھ سائن ان کریں اور جب پوچھا جائے تو یوزر کوڈ درج کریں۔
  6. ایپلیکیشن کو اجازت دیں۔

متوقع نتیجہ: سرور پر، ایک نوٹیفکیشن ساؤنڈ چلتا ہے اور درخواستوں کے صفحے پر ایک نئی انٹری ظاہر ہوتی ہے۔ درخواست گوگل اکاؤنٹ کا نام، ای میل ایڈریس، اور وہ کلائنٹ پی سی دکھاتی ہے جس نے لاگ ان شروع کیا تھا۔


لاگ ان درخواست کو منظور کیسے کریں

ہر OAuth لاگ ان ایک درخواست پیدا کرتا ہے جسے گاہک کو رسائی دینے سے پہلے ایک ایڈمن یا کیشئر کو منظور کرنا ہوتا ہے۔

  1. جب لاگ ان درخواست آتی ہے، سرور پر ایک نوٹیفکیشن ساؤنڈ چلتا ہے اور سائیڈبار میں درخواستوں کے صفحے کے آئیکن پر ایک بیج ظاہر ہوتا ہے۔
  2. Requests صفحے پر جائیں۔
  3. زیر التواء درخواست دکھاتی ہے:
    • پرووائیڈر کا نام (مثلاً گوگل)۔
    • پرووائیڈر سے ڈسپلے نام (مثلاً "John Smith")۔
    • ای میل ایڈریس (مثلاً "john@example.com")۔
    • وہ کلائنٹ پی سی جس نے درخواست شروع کی (ہوسٹ نام یا ڈسپلے نام)۔
    • ٹائم اسٹیمپ۔
  4. درخواست کی تفصیلات کا جائزہ لیں۔ تصدیق کریں کہ کلائنٹ پی سی پر موجود شخص اکاؤنٹ کی معلومات سے میل کھاتا ہے۔
  5. درخواست کو قبول کرنے کے لئے Approve پر کلک کریں۔

متوقع نتیجہ: اگر اس OAuth شناخت سے کوئی موجودہ ممبر اکاؤنٹ منسلک نہیں ہے، تو ایک نیا ممبر اکاؤنٹ خود بخود بنایا جاتا ہے۔ پرووائیڈر سے ڈسپلے نام اور ای میل استعمال ہوتے ہیں۔ گاہک لاگ ان ہو جاتا ہے اور کلائنٹ پی سی غیر فعال اسکرین سے آن لائن پیج میں منتقل ہو جاتا ہے۔ اگر اس OAuth شناخت سے پہلے سے کوئی ممبر اکاؤنٹ منسلک تھا، تو موجودہ ممبر کو براہ راست لاگ ان کر دیا جاتا ہے۔

ٹپ: اگر لاگ ان درخواست مشکوک ہو (مثلاً، پی سی غیر حاضر ہو یا درخواست خودکار نظر آتی ہو)، تو Reject پر کلک کریں۔ گاہک کو "Access denied" پیغام نظر آئے گا اور وہ دوبارہ کوشش کر سکتے ہیں۔


فیس بک OAuth کیسے سیٹ اپ کریں

  1. فیس بک ڈویلپر پورٹل پر https://developers.facebook.com پر جائیں۔
  2. ایک نیا ایپ بنائیں۔ Consumer ایپ ٹائپ منتخب کریں۔
  3. ایپ کی Settings > Basic صفحے پر جائیں۔ App ID اور App Secret نوٹ کریں۔
  4. Add Product پر جائیں اور Facebook Login for Devices شامل کریں۔
  5. فیس بک لاگ ان فار ڈیوائسز کی ترتیبات میں، اگر پورٹل کی طرف سے ضروری ہو تو اپنے ری ڈائریکٹ یو آر آئیز شامل کریں۔
  6. HandyCafe سرور کھولیں اور Settings > OAuth پر جائیں۔
  7. Facebook پرووائیڈر کی قطار تلاش کریں۔
  8. فیس بک ٹوگل کو فعال کریں۔
  9. App ID کو کلائنٹ آئی ڈی فیلڈ میں پیسٹ کریں۔
  10. App Secret کو کلائنٹ سیکریٹ فیلڈ میں پیسٹ کریں۔
  11. Save پر کلک کریں۔

متوقع نتیجہ: فیس بک ایک فعال پرووائیڈر کے طور پر ظاہر ہوتا ہے۔ کلائنٹ کی غیر فعال اسکرینز پر دیگر فعال پرووائیڈرز کے ساتھ فیس بک لاگ ان بٹن دکھاتا ہے۔


ڈسکارڈ OAuth کیسے سیٹ اپ کریں

  1. ڈسکارڈ ڈویلپر پورٹل پر https://discord.com/developers/applications پر جائیں۔
  2. ایک نئی ایپلیکیشن بنائیں۔ اسے اپنے کیفے کے نام پر رکھیں۔
  3. بائیں سائیڈبار میں OAuth2 سیکشن پر جائیں۔
  4. Client ID کو کاپی کریں اور Client Secret بنائیں۔ سیکریٹ کو محفوظ طریقے سے اسٹور کریں کیونکہ ڈسکارڈ اسے صرف ایک بار دکھاتا ہے۔
  5. HandyCafe سرور کھولیں اور Settings > OAuth پر جائیں۔
  6. Discord پرووائیڈر کی قطار تلاش کریں (یہ ڈیفالٹ کے طور پر غیر فعال ہوتا ہے)۔
  7. ڈسکارڈ ٹوگل کو فعال کریں۔
  8. Client ID کو کلائنٹ آئی ڈی فیلڈ میں پیسٹ کریں۔
  9. Client Secret کو کلائنٹ سیکریٹ فیلڈ میں پیسٹ کریں۔
  10. Save پر کلک کریں۔

متوقع نتیجہ: ڈسکارڈ اب کلائنٹ کی غیر فعال اسکرینز پر لاگ ان آپشن کے طور پر دستیاب ہے۔


بغیر کریڈٹ کے لاگ ان کی اجازت کیسے دیں

ڈیفالٹ کے طور پر، HandyCafe OAuth سے تصدیق شدہ گاہکوں کو لاگ ان کرنے کی اجازت دیتا ہے چاہے ان کے پاس والٹ بیلنس یا وقت کا کریڈٹ نہ ہو۔ آپ اس رویے کو تبدیل کر سکتے ہیں۔

  1. Settings > OAuth پر جائیں۔
  2. Allow Login Without Credit ٹوگل تلاش کریں۔
  3. اگر فعال ہے (ڈیفالٹ)، تو گاہک جو OAuth کے ذریعے تصدیق کرتے ہیں، لاگ ان کر سکتے ہیں چاہے ان کے بیلنس میں کچھ نہ ہو۔ ایک کیشئر ان کے لئے پوسٹ پیڈ سیشن شروع کر سکتا ہے۔
  4. اگر غیر فعال ہے، تو گاہکوں کو لاگ ان کرنے کے لئے یا تو والٹ بیلنس یا وقت کا کریڈٹ ہونا ضروری ہے۔ صفر بیلنس والے گاہکوں کو ایک پیغام نظر آئے گا کہ وہ کیشئر کے پاس جا کر ٹاپ اپ کریں۔
  5. ٹوگل کو تبدیل کرنے کے بعد Save پر کلک کریں۔

متوقع نتیجہ: یہ رویہ نئے لاگ ان درخواستوں کے لئے فوری طور پر اثر انداز ہوتا ہے۔ موجودہ سیشن متاثر نہیں ہوتے۔


ایک موجودہ ممبر کے ساتھ OAuth شناخت کو کیسے لنک کریں

اگر کسی گاہک کے پاس پہلے سے ایک ممبر اکاؤنٹ ہے (جو کیشئر کے ذریعہ دستی طور پر بنایا گیا ہے) اور پھر وہ پہلی بار OAuth کے ذریعے لاگ ان کرتا ہے، تو منظوری کا عمل ان کی موجودہ اکاؤنٹ کے ساتھ OAuth شناخت کو لنک کر سکتا ہے۔

  1. جب OAuth لاگ ان درخواست درخواستوں کے صفحے پر آتی ہے، تو چیک کریں کہ آیا ای میل کسی موجودہ ممبر سے میل کھاتی ہے۔
  2. اگر سسٹم ایک میل کھاتا ہے، تو منظوری ڈائیلاگ موجودہ ممبر کے ساتھ OAuth شناخت کو لنک کرنے کی پیشکش کرے گا بجائے اس کے کہ نیا اکاؤنٹ بنائے۔
  3. لنک آپشن منتخب کر کے درخواست کو منظور کریں۔

متوقع نتیجہ: موجودہ ممبر اکاؤنٹ کو ایک OAuth لنک مل جاتا ہے۔ اس پرووائیڈر سے مستقبل کے لاگ انز منظوری کے مرحلے کو بائی پاس کر کے ممبر کو براہ راست لاگ ان کر دیں گے (پہلی منظوری کے بعد)۔


عام غلطیوں سے بچنے کے لئے

  • گوگل کلاؤڈ کنسول میں غلط OAuth کلائنٹ ٹائپ کا استعمال۔ آپ کو OAuth کلائنٹ آئی ڈی بناتے وقت "TVs and Limited Input devices" منتخب کرنا ہوگا۔ اگر آپ "Web application" یا "Desktop app" منتخب کرتے ہیں، تو ڈیوائس اتھورائزیشن فلو کام نہیں کرے گا اور کلائنٹ ڈیوائس کوڈ حاصل کرنے میں ناکام رہے گا۔
  • گلوبل OAuth ٹوگل کو فعال کرنا بھول جانا۔ انفرادی پرووائیڈرز کو فعال کرنا کافی نہیں ہے۔ OAuth سیٹنگز صفحے کے اوپر ماسٹر OAuth ٹوگل بھی آن ہونا چاہئے۔
  • لاگ ان درخواستوں کو منظور نہ کرنا۔ OAuth لاگ انز کو سرور سے واضح منظوری کی ضرورت ہوتی ہے۔ اگر کوئی درخواستوں کے صفحے کی نگرانی نہیں کرتا، تو گاہک غیر فعال اسکرین پر غیر معینہ مدت تک انتظار کریں گے۔ مصروف اوقات کے دوران درخواستوں کی نگرانی کے لئے ایک کیشئر کو مقرر کرنے پر غور کریں۔
  • ڈیوائس کوڈز کو ختم ہونے دینا۔ ڈیوائس کوڈز کی محدود زندگی ہوتی ہے (عام طور پر 5-10 منٹ)۔ اگر گاہک QR کوڈ اسکین کرنے اور تصدیق کرنے میں بہت زیادہ وقت لیتا ہے، تو کوڈ ختم ہو جاتا ہے اور انہیں دوبارہ شروع کرنا پڑتا ہے۔ گاہکوں کو فوری اسکین کرنے کی ہدایت کریں۔
  • اضافی وائٹ اسپیس کے ساتھ اسناد کو پیسٹ کرنا۔ پرووائیڈر کنسول سے کلائنٹ آئی ڈی یا کلائنٹ سیکریٹ کو کاپی کرتے وقت، یقینی بنائیں کہ کوئی ابتدائی یا اختتامی اسپیس شامل نہ ہو۔ اضافی وائٹ اسپیس تصدیق کی ناکامیوں کا سبب بنے گا۔
  • گوگل OAuth ایپ کو شائع کرنا بھول جانا۔ "Testing" موڈ میں گوگل ایپس صرف محدود تعداد میں ٹیسٹ یوزرز کی اجازت دیتی ہیں۔ کسی بھی گاہک کو لاگ ان کرنے کی اجازت دینے کے لئے، آپ کو ایپ کو OAuth کنسینٹ اسکرین صفحے کے ذریعے شائع کرنا ہوگا اور کسی بھی مطلوبہ تصدیقی مراحل کو مکمل کرنا ہوگا۔
  • کلائنٹ آئی ڈی اور کلائنٹ سیکریٹ کو ملا دینا۔ یہ دو مختلف ویلیوز ہیں۔ کلائنٹ آئی ڈی عوامی ہے۔ کلائنٹ سیکریٹ کو خفیہ رکھا جانا چاہئے۔ ان کو تبدیل کرنے سے تصدیق کی ناکامیوں کا سبب بنے گا۔
  • کیفے کا نام ترتیب نہ دینا۔ آپ کی HandyCafe سیٹنگز سے کیفے کا نام OAuth فلو کے دوران کلائنٹ کی غیر فعال اسکرین پر دکھایا جاتا ہے۔ خالی یا ڈیفالٹ نام غیر پیشہ ورانہ نظر آتا ہے۔ OAuth کو فعال کرنے سے پہلے Settings > General میں اپنے کیفے کا نام سیٹ کریں۔