استفد من توسيع Chrome الخاص بك بواسطة مصادقة OpenID Connect (OAuth 2.0)
تعلم كيف تستفيد من توسيع Chrome الخاص بك من خلال إضافة مصادقة المستخدم إليه.
تعلم كيف تستفيد من توسيع Chrome الخاص بك من خلال إضافة مصادقة المستخدم إليه.
ملحقات Chrome هي وسيلة رائعة لتمديد فاعلية متصفح Chrome. عندما يكون لديك ملحق شهير، قد ترغب في الاستفادة منه من خلال تقديم ميزات احترافية للمستخدمين الذين يدفعون مقابلها. المصادقة ضرورية لهذا الغرض:
من ناحية أخرى، لا نريد الالتزام بنظام حساب Google، حيث قد يفضل المستخدمون استخدام حسابات أخرى، أو قد يكون لديك خدمات متعددة ترغب في دمجها مع نفس نظام الهوية.
ملخص سريع لفوائد استخدام OpenID Connect (OIDC) للمصادقة:
في هذا الدليل، سنستخدم Logto كمزود لخدمة OIDC، وهو بديل لـ Auth0 لبناء هياكل الهوية.
لنبدا!
على افتراض أنك وضعت زر "تسجيل الدخول" في نافذة البوب أب لملحق Chrome الخاص بك، ستبدو عملية المصادقة كما يلي:
لبقية الصفحات التفاعلية في الملحق، فقط تحتاج إلى استبدال مشارك نافذة البوب أب للملحق باسم الصفحة. في هذا الدليل، سنركز على صفحة البوب أب.
لبدء العمل، أنشئ تطبيق Logto بنوع "تطبيق صفحة واحدة". اتبع هذه الخطوات:
قم بتثبيت Logto SDK في مشروع ملحق Chrome الخاص بك:
manifest.jsonيتطلب Logto SDK الأذونات التالية في manifest.json:
permissions.identity: مطلوب لواجهة API هوية Chrome، التي تُستخدم لتسجيل الدخول وتسجيل الخروج.permissions.storage: مطلوب لتخزين جلسة المستخدم.host_permissions: مطلوب لاتصال Logto SDK بواجهات Logto API.في سكريبت الخلفية لملحق Chrome الخاص بك، قم بتهيئة Logto SDK:
استبدل <your-logto-endpoint> و <your-logto-app-id> بالقيم الفعلية. يمكنك العثور على هذه القيم في صفحة التطبيق التي أنشأتها للتو في كونسول Logto.
إذا لم يكن لديك سكريبت خلفي، يمكنك اتباع الدليل الرسمي لإنشاء واحد.
بعد ذلك، نحتاج للاستماع إلى الرسائل من الصفحات الأخرى للملحق والتعامل مع عملية المصادقة:
قد تلاحظ أن هناك عنواني توجيه استخدما في الشيفرة أعلاه. كلاهما تم إنشاؤه بواسطة chrome.identity.getRedirectURL، وهو واجهة برمجة تطبيقات Chrome المدمجة لإنشاء عنوان توجيه لتدفقات المصادقة. العنوانين سيكونان:
https://<extension-id>.chromiumapp.org/callback لتسجيل الدخول.https://<extension-id>.chromiumapp.org/ لتسجيل الخروج.يرجى ملاحظة أن هذه العناوين غير قابلة للوصول، وهي تُستخدم فقط لتحفيز Chrome لاتخاذ إجراءات محددة في عملية المصادقة.
الآن نحتاج إلى تحديث إعدادات تطبيق Logto للسماح لعناوين التوجيه التي أنشأناها للتو.
https://<extension-id>.chromiumapp.org/callback.https://<extension-id>.chromiumapp.org/.chrome-extension://<extension-id>. سوف يستخدم SDK في ملحق Chrome هذا الأصل للتواصل مع واجهات Logto API.تذكر استبدال <extension-id> بمعرف الملحق الفعلي الخاص بك. يمكنك العثور على معرف الملحق في صفحة chrome://extensions.
بعد تحديث الإعدادات، يجب أن تبدو إعدادات تطبيق Logto الخاصة بك كما يلي:

نحن تقريبا هناك! لنقم بإضافة أزرار تسجيل الدخول وتسجيل الخروج والمنطق اللازم إلى صفحة البوب أب.
في ملف popup.html:
في ملف popup.js (افتراضًا أن popup.js تم تضمينه في popup.html):
الآن يمكنك اختبار عملية المصادقة في ملحق Chrome الخاص بك:
نظرًا لأن Chrome يوفر واجهات تخزين موحدة، بصرف النظر عن تدفقات تسجيل الدخول وتسجيل الخروج، يمكن استخدام جميع طرق Logto SDK الأخرى في صفحة البوب أب مباشرةً.
في popup.js الخاص بك، يمكنك إعادة استخدام مثيل LogtoClient الذي تم إنشاؤه في سكريبت الخلفية، أو إنشاء واحد جديد بنفس التكوين:
ثم يمكنك إنشاء وظيفة لتحميل حالة المصادقة وملف تعريف المستخدم:
يمكنك أيضًا دمج وظيفة loadAuthenticationState مع منطق تسجيل الدخول وتسجيل الخروج:
إليك مثال على صفحة البوب أب مع حالة المصادقة:

لمزيد من المعلومات حول SDK، يمكنك الرجوع إلى التوثيق الرسمي لـ SDK المتصفح. SDK المتصفح يشارك نفس واجهات API مع SDK ملحق Chrome.
browser أو ما شابه لتجنب التجميع غير الضروري لوحدات Node.js.راجع مشروعنا النموذجي للحصول على مثال كامل مع TypeScript، Rollup والإعدادات الأخرى.
مع تسجيل المستخدمين، يمكنك الآن تقديم ميزات مدفوعة بأمان في ملحق Chrome الخاص بك. على سبيل المثال، يمكنك تخزين حالة اشتراك المستخدم في ملف التعريف والتحقق منها عند فتح المستخدم للملحق.
بدمج قوة ملحقات Chrome وLogto، يمكنك بناء ملحق أكثر مرونة وتخصيصًا يلبي احتياجاتك واحتياجات المستخدمين.