تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يجب أن تحصل تطبيقات الويب على رمز دخول للاتصال بواجهات Google APIs بأمان.
تتوافق مكتبة JavaScript لخدمات Google Identity مع كل من مصادقة تسجيل دخول المستخدم والتفويض للحصول على رمز دخول لاستخدامه مع واجهات برمجة تطبيقات Google. المكتبة مصممة للاستخدام في المتصفحات فقط.
تحدّد المصادقة هوية المستخدم، ويُشار إليها عادةً باسم
اشتراك المستخدم أو تسجيل الدخول. الترخيص هو عملية منح أو رفض الوصول
إلى البيانات أو الموارد. ويشمل ذلك الحصول على موافقة المستخدم وإدارتها، والحد من كم البيانات أو الموارد التي تتم مشاركتها مع النطاقات، واسترداد رمز الدخول للاستخدام مع واجهات Google APIs.
تتناول هذه الأدلة مواضيع التفويض ومشاركة البيانات.
آلية عمل تفويض المستخدم تصف الخطوات الفردية لتفويض المستخدم بالتفصيل وتتضمّن أمثلة لمربع حوار المستخدم.
هذه المكتبة غير مخصصة للاستخدام مع إطارات عمل JavaScript من جهة الخادم مثل Node.js، ويمكنك بدلاً من ذلك استخدام مكتبة برامج Node.js من Google.
التغييرات التي أُجريت
بالنسبة إلى المستخدمين، توفّر مكتبة Google Identity Services العديد من تحسينات قابلية الاستخدام مقارنةً بمكتبات JavaScript السابقة، بما في ذلك:
أصبحت المصادقة لتسجيل دخول المستخدم، والتفويض للحصول على رمز الدخول لاستدعاء واجهات برمجة تطبيقات Google، تشتمل الآن على مسارين منفصلين ومميّزين للمستخدِم؛ أحدهما لتسجيل الدخول والآخر للموافقة أثناء التفويض، مع تدفقات منفصلة للمستخدم لتمييز هويتك بوضوح وما يمكن لأي تطبيق فعله.
تم تحسين مستوى الرؤية والتحكُّم الدقيق في مشاركة البيانات أثناء موافقة المستخدم.
مربّعات حوار منبثقة مستندة إلى المتصفّح للحد من الصعوبات التي تواجهها، والتي لا تتطلّب
من المستخدمين مغادرة موقعك الإلكتروني لإجراء ما يلي:
الحصول على رمز الدخول من Google، أو
إرسال رمز تفويض إلى النظام الأساسي للخلفية.
وكان تركيزنا ينصبّ على تقليل التعقيدات، وتحسين مستوى الأمان، وتسهيل عملية الدمج قدر الإمكان. بعض هذه التغييرات هي:
إنّ مصادقة المستخدم لتسجيل الدخول، والتفويض المستخدم للحصول على رمز الدخول لاستدعاء Google APIs، هما مجموعتان منفصلتان ومستقلتان من كائنات JavaScript وطرقها. يقلل هذا من التعقيد ومقدار التفاصيل
المطلوبة لتنفيذ المصادقة أو الترخيص.
مكتبة JavaScript واحدة توفّر الآن كلاً من:
تدفق OAuth 2.0 الضمني المستخدَم للحصول على رمز دخول لاستخدامه في المتصفّح
مسار رمز تفويض OAuth 2.0، المعروف أيضًا باسم الوصول بلا اتصال بالإنترنت، ويبدأ في تقديم رمز تفويض بأمان إلى النظام الأساسي الخلفية، حيث يمكن استبداله برمز الدخول وإعادة تحميل الرمز المميّز. في السابق، كانت هذه المسارات متاحة فقط باستخدام مكتبات متعددة ومن خلال الاتصالات المباشرة بنقاط نهاية OAuth 2.0. تؤدي المكتبة الفردية إلى تقليل وقت الدمج والجهد المبذولَين، بدلاً من تضمين
مكتبات متعددة ومفاهيم OAuth 2.0 وتعلُّمها، يمكنك التركيز على
واجهة واحدة موحَّدة.
تمت إزالة التلميح من خلال دوال نمط getter لالبساطة وسهولة القراءة.
وعند التعامل مع ردود التفويض، يمكنك اختيار ما إذا كنت تريد استخدام الوعد لتلبية الطلبات أم لا، بدلاً من اتخاذ هذا القرار نيابةً عنك.
لم يعُد يتم تلقائيًا تحميل وحدة "gapi.auth2" والعناصر والطرق المرتبطة
بها من وراء الكواليس، وقد تم استبدالها
بكائنات وأساليب مكتبة Google Identity Services أكثر وضوحًا.
تمت إزالة التحديث التلقائي لرموز الدخول المنتهية الصلاحية لتحسين أمان المستخدم وزيادة الوعي به. بعد انتهاء صلاحية رمز الدخول، يجب على تطبيقك معالجة أخطاء واجهة برمجة تطبيقات Google
وطلب الحصول على رمز دخول جديد وصالح.
فصل لحظات المصادقة والترخيص بشكل واضح، لن يعود بالإمكان تسجيل دخول المستخدم إلى تطبيقك وحسابه على Google في آنٍ واحد مع إصدار رمز الدخول. في السابق، كان طلب رمز الدخول يؤدي أيضًا إلى تسجيل دخول المستخدمين إلى
حساب Google الخاص بهم وعرض بيانات اعتماد رمز JWT المميز لمصادقة
المستخدم.
لزيادة أمان المستخدم وخصوصيته، تتبع بيانات الاعتماد الصادرة لكل مستخدم
مبدأ الامتياز الأقل من خلال تضمين رمز الدخول والمعلومات المطلوبة فقط لإدارته.
تاريخ التعديل الأخير: 2023-12-01 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2023-12-01 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eGoogle Identity Services JavaScript library enables secure access to Google APIs via access tokens and supports user authentication.\u003c/p\u003e\n"],["\u003cp\u003eThe library offers separate, streamlined user flows for sign-in (authentication) and consent (authorization) for enhanced user experience and control.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers benefit from reduced complexity, improved security, and easier integration with features like a unified library for both implicit and authorization code flows.\u003c/p\u003e\n"],["\u003cp\u003eGoogle Identity Services prioritizes user privacy and security through measures like least privilege credentials and explicit access token refresh handling.\u003c/p\u003e\n"],["\u003cp\u003eThe library is exclusively for browser-based applications and should not be used with server-side JavaScript frameworks like Node.js.\u003c/p\u003e\n"]]],[],null,["# Authorizing for Web\n\nWeb apps must obtain an access token to securely call Google APIs.\n\nThe Google Identity Services JavaScript library supports both authentication for\nuser sign-in and authorization to obtain an access token for use with Google\nAPIs. The library is intended only for use in browsers.\n\nAuthentication establishes who someone is, and is commonly referred to as user\nsign-up or sign-in. Authorization is the process of granting or rejecting access\nto data or resources. It includes obtaining and managing user consent, limiting\nthe amount of data or resources shared with scopes, and retrieving an access\ntoken for use with Google APIs.\n\nThese guides cover authorization and data sharing topics.\n\n[How user authorization works](/identity/oauth2/web/guides/how-user-authz-works) describes the individual steps of user\nauthorization in detail and includes user dialog examples.\n\nIf you are looking for help with authentication and how to implement user\nsign-up and sign-in see [Sign In With Google](/identity/gsi/web/guides/overview).\n| **Note:** The `email`, `profile`, and `openid` scopes are used for user authentication. If your app only uses these scopes [Sign In With Google](/identity/gsi/web) is recommended instead.\n\nThis library is not intended for use with server-side JavaScript frameworks such\nas Node.js, instead use Google's [Node.js](https://github.com/googleapis/google-api-nodejs-client)\nclient library.\n\nWhat's changed\n--------------\n\nFor users, the Google Identity Services library offers numerous usability\nimprovements over earlier JavaScript libraries, including:\n\n- Authentication for user sign-in, and authorization to obtain an access token to call Google APIs, now have two separate and distinct user flows; one for [sign-in](/identity/gsi/web/guides/overview#how_it_works) and another for [consent](/identity/oauth2/web/guides/how-user-authz-works#user_consent) during authorization, with separate user flows to clearly differentiate who you are, from what an app can do.\n- Improved visibility and granular control of data sharing during [user\n consent](/identity/oauth2/web/guides/how-user-authz-works#user_consent).\n- Browser based pop-up dialogs to reduce friction, and which do not require users to leave your site to:\n - obtain an access token from Google, or\n - send an authorization code to your backend platform.\n\nFor developers, our focus has been to reduce complexity, improve security, and\nmake your integration as quick and easy as possible. Some of these changes are:\n\n- User [authentication](/identity/gsi/web/reference/js-reference) for sign-in, and [authorization](/identity/oauth2/web/reference/js-reference) used to obtain an access token to call Google APIs, are two separate and distinct sets of JavaScript objects, and methods. This reduces the complexity and amount of detail required to implement authentication or authorization.\n- A single JavaScript library now supports both the:\n - OAuth 2.0 implicit flow, used to obtain an access token for use in-browser\n - OAuth 2.0 authorization code flow, also known as offline access, and initiates securely delivering an authorization code to your backend platform, where it can be exchanged for an access token and refresh token. Previously, these flows were only available by using multiple libraries and through direct calls to OAuth 2.0 endpoints. A single library decreases your integration time and effort, instead of including and learning multiple libraries and OAuth 2.0 concepts you can focus on a single, unified interface.\n- Indirection through getter style functions has been removed for simplicity and readability.\n- When handling authorization responses you choose whether or not to use a [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) to fulfill requests, instead of that decision being made for you.\n- The [Google API Client Library for JavaScript](https://github.com/google/google-api-javascript-client) has been updated with these changes:\n - the `gapi.auth2` module and associated objects and methods are no longer automatically loaded for you behind the scenes, and have been replaced with more explicit Google Identity Services library objects and methods.\n - Automatic refresh of expired access tokens has been removed to improve user security and awareness. After an access token expires your app must handle Google API error responses, request, and obtain a new, valid access token.\n - To support a clear separation of authentication and authorization moments, simultaneously signing a user in to your app and to their Google Account while also issuing an access token is no longer supported. Previously, requesting an access token also signed users into their Google Account and returned a JWT ID token credential for user authentication.\n- To increase user security and privacy, per user [credentials](/identity/oauth2/web/guides/migration-to-gis#example_credentials) issued for authorization follow the principle of least privilege by including only an access token and information required to manage it."]]