این راهنما به شما کمک می کند بین استفاده از کتابخانه خدمات هویت گوگل برای مجوز کاربر یا پیاده سازی کتابخانه جاوا اسکریپت خود یکی را انتخاب کنید. این به شما کمک می کند تصمیم بگیرید که کدام جریان مجوز OAuth 2.0 برای برنامه وب شما بهترین است.
پیش از خواندن این راهنما، فرض بر این است که با اصطلاحات و مفاهیم شرح داده شده در راهنمای نمای کلی و نحوه عملکرد مجوز کاربر آشنا هستید.
کتابخانه GIS در این مرورگرهای پشتیبانی شده در دستگاه کاربر اجرا می شود. این برای استفاده با چارچوب های جاوا اسکریپت سمت سرور مانند Node.js در نظر گرفته نشده است، در عوض از کتابخانه مشتری Node.js Google استفاده کنید.
این راهنما فقط موضوعات مجوز و اشتراک داده را پوشش می دهد. احراز هویت کاربر را بررسی نمی کند، در عوض برای ثبت نام و ورود کاربر به راهنمای ورود به سیستم با Google و مهاجرت از Google به سیستم مراجعه کنید.
تصمیم گیری در مورد اینکه آیا کتابخانه GIS برای شما مناسب است یا خیر
شما باید انتخاب کنید که آیا از کتابخانه Google استفاده میکنید یا اینکه بهترین مورد را برای نیازهایتان ایجاد کنید. مروری بر ویژگی ها و عملکردها:
- کتابخانه جاوا اسکریپت خدمات هویت گوگل پیاده سازی می کند:
- رضایت مبتنی بر پنجره بازشو جریان می یابد تا تغییر مسیرها را به حداقل برساند، بنابراین کاربران را قادر می سازد در طول فرآیند مجوز در سایت شما باقی بمانند.
- ویژگی های امنیتی مانند جعل درخواست بین سایتی (CRSF).
- روش های کمکی برای درخواست دامنه های فردی و تأیید رضایت کاربر.
- پیوندهای مربوط به مدیریت خطا و مستندسازی برای استفاده مهندسان در طول توسعه و بعداً برای بازدیدکنندگان سایت شما.
- هنگام پیاده سازی بدون کتابخانه خدمات هویت، شما مسئول موارد زیر هستید:
- مدیریت درخواستها و پاسخها با نقاط پایانی OAuth 2.0 Google، از جمله تغییر مسیرها.
- بهینه سازی تجربه کاربری
- پیاده سازی ویژگی های امنیتی برای اعتبارسنجی درخواست ها، پاسخ ها و جلوگیری از CSRF.
- روشهایی برای تأیید رضایت کاربر برای هر دامنه درخواستی.
- مدیریت کدهای خطای OAuth 2.0، ایجاد پیام های قابل خواندن توسط انسان، و پیوندهایی به کمک کاربر.
به طور خلاصه، Google کتابخانه GIS را برای کمک به شما در پیاده سازی سریع و ایمن مشتری OAuth 2.0 و بهینه سازی تجربه مجوز کاربر ارائه می دهد.
انتخاب یک جریان مجوز
شما باید یکی از دو جریان مجوز OAuth 2.0 را انتخاب کنید: کد ضمنی یا مجوز - صرف نظر از اینکه تصمیم دارید از کتابخانه جاوا اسکریپت خدمات هویت Google استفاده کنید یا کتابخانه خود را ایجاد کنید.
هر دو جریان منجر به یک نشانه دسترسی می شوند که می تواند برای فراخوانی API های Google استفاده شود.
تفاوت اصلی بین این دو جریان عبارتند از:
- تعداد اقدامات کاربر،
- آیا برنامه شما بدون حضور کاربر با Google API تماس خواهد گرفت،
- اگر یک پلتفرم باطن برای میزبانی یک نقطه پایانی و ذخیره نشانههای تازهسازی هر کاربر برای حسابهای کاربری فردی مورد نیاز است، و
- سطوح بالاتر یا پایین تر امنیت کاربر
هنگام مقایسه جریان ها و ارزیابی الزامات امنیتی خود، فاکتوری که باید در نظر گرفت این است که سطح امنیت کاربر بسته به دامنه انتخابی شما متفاوت است. برای مثال، مشاهده دعوتهای تقویم بهعنوان فقط خواندنی ممکن است در مقایسه با استفاده از محدوده خواندن/نوشتن برای ویرایش فایلها در Drive، خطر کمتری در نظر گرفته شود.
مقایسه جریان OAuth 2.0
جریان ضمنی | جریان کد مجوز | |
رضایت کاربر لازم است | برای هر درخواست توکن، از جمله جایگزینی توکن های منقضی شده. | فقط برای اولین درخواست رمز. |
کاربر باید حضور داشته باشد | آره | خیر، از استفاده آفلاین پشتیبانی می کند. |
امنیت کاربر | کمترین | اکثر آنها دارای احراز هویت مشتری هستند و از خطرات مدیریت توکن درون مرورگر جلوگیری می کنند. |
رمز دسترسی صادر شد | آره | آره |
نشانه Refresh صادر شد | خیر | آره |
مرورگر پشتیبانی شده مورد نیاز است | آره | آره |
رمز دسترسی که برای فراخوانی APIهای Google استفاده می شود | فقط از یک برنامه وب در حال اجرا در مرورگر کاربر. | یا از یک سرور در حال اجرا بر روی پلتفرم باطن، یا از یک برنامه وب در حال اجرا در مرورگر کاربر. |
به پلتفرم باطن نیاز دارد | خیر | بله، برای میزبانی و ذخیرهسازی نقطه پایانی. |
ذخیره سازی ایمن مورد نیاز است | خیر | بله، برای ذخیره سازی رمز تازه. |
به میزبانی یک نقطه پایانی کد مجوز نیاز دارد | خیر | بله، برای دریافت کدهای مجوز از Google. |
به رفتار انقضای نشانه دسترسی داشته باشید | یک حرکت کاربر مانند فشار دادن دکمه یا کلیک کردن روی یک پیوند برای درخواست و دریافت یک نشانه دسترسی جدید و معتبر لازم است. | پس از درخواست اولیه کاربر، پلتفرم شما رمز تجدید ذخیره شده را مبادله می کند تا یک نشانه دسترسی جدید و معتبر لازم برای فراخوانی APIهای Google را به دست آورد. |