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