
مقدمه
ورود با گوگل (SiwG) روشی سریع و امن برای ورود کاربران به برنامه یا وبسایت شماست. پیادهسازی صحیح آن نه تنها فرآیند ثبتنام کاربر را ساده میکند، بلکه امنیت برنامه شما را نیز افزایش میدهد. این سند، بهترین شیوهها برای ادغام ورود با گوگل در پلتفرمهای وب، اندروید و iOS را شرح میدهد. این سند صرفاً بر احراز هویت تمرکز دارد. مجوزدهی فراتر از محدوده این سند است.
چک لیست مراحل ادغام
این چک لیست یک نقشه راه سطح بالا برای راهنمایی شما در فرآیند ادغام «ورود با گوگل» ارائه میدهد. این نقشه راه به مراحل کلیدی، از راهاندازی اولیه تا راهاندازی نهایی، سازماندهی شده است. از این لیست برای پیگیری پیشرفت خود استفاده کنید و برای رفتن به راهنمای دقیق هر مرحله، روی لینکها کلیک کنید.
مرحله ۰: شروع کار (اختیاری)
با استفاده از آزمایشگاههای کد توسعهدهندگان کاربردی و گام به گام، ادغام خود را آغاز کنید.
وب: دکمهی ورود با یک لمس و گوگل را در codelab تکمیل کنید تا یک یکپارچهسازی اولیهی وب ایجاد شود.
اندروید: برای یادگیری اصول اولیه مدیریت اعتبارنامه اندروید، آزمایشگاه کد اندروید را تکمیل کنید.
iOS: برای آشنایی با iOS SDK، بخش کدنویسی iOS را تکمیل کنید.
مرحله ۱: پروژه گوگل کلود و پیکربندی برند
مطمئن شوید که پروژه شما از همان ابتدا برای موفقیت آماده شده است.
ساختار پروژههای گوگل کلود برای محیطها و برندهای مختلف.
پیکربندی صفحه رضایت OAuth را با تمام اطلاعات مربوط به برند و پشتیبانی تکمیل کنید.
نوع صحیح شناسه کلاینت OAuth را برای هر پلتفرم (وب، اندروید، iOS) ایجاد کنید.
فاز ۲: توسعه هسته: فرانتاند و بکاند
منطق سرور امن و تجربه کاربری مختص پلتفرم را بسازید.
در توسعه فرانتاند شما:
بهترین شیوههای کلی تجربه کاربری (UX) را برای به حداکثر رساندن پذیرش و اعتماد کاربر بررسی و اعمال کنید.
وب: از کتابخانه رسمی جاوا اسکریپت استفاده کنید و هر دو جریان دکمه و تک ضربه را ادغام کنید.
اندروید: از SDK رسمی اندروید برای ادغام استفاده کنید.
iOS: از SDK رسمی iOS برای ادغام استفاده کنید.
در توسعه بکاند شما:
اعتبارسنجی امن backend برای توکنهای Google ID را پیادهسازی کنید.
از sub claim به عنوان شناسه منحصر به فرد و دائمی کاربر در سیستم خود استفاده کنید.
در صورت لزوم، برای جداسازی حوزههای احراز هویت و مجوزدهی برنامهریزی کنید.
مرحله ۳: تقویت امنیت و راهاندازی تولید
اطمینان حاصل کنید که یکپارچهسازی شما امن، سازگار و آماده برای تولید است.
بهترین شیوههای امنیتی را بررسی و پیادهسازی کنید.
فرآیند تأیید برنامه OAuth را قبل از راهاندازی تکمیل کنید.
مطمئن شوید که برنامه شما به درستی ابطال توکن را پس از حذف حساب کاربری مدیریت میکند.
بهترین شیوههای عمومی (همه پلتفرمها)
این شیوهها صرف نظر از پلتفرمی که برای آن توسعه میدهید، اعمال میشوند. توسعهدهندگان همچنین باید سیاستهای کلی OAuth 2.0 را بررسی کنند تا از انطباق کامل اطمینان حاصل شود.
راهاندازی پروژه گوگل کلود
این بخش، بهترین شیوهها برای ساختاردهی پروژههای Google Cloud شما و تنظیم کلاینتهای OAuth برای امنیت و انطباق با برند را شرح میدهد.
استفاده از پروژههای جداگانه برای آزمایش و تولید
از آنجایی که برخی از سیاستهای گوگل فقط در مورد برنامههای کاربردی در حال تولید اعمال میشود، شما باید پروژههای جداگانهای را در کنسول ابری گوگل برای محیطهای استقرار مختلف خود، مانند توسعه، مرحلهبندی و تولید، ایجاد کنید. برای جزئیات بیشتر به این صفحه مراجعه کنید.
برای هر برند یا دامنه از پروژههای جداگانه استفاده کنید
اگر سازمان شما چندین برنامه با برندهای متمایز را مدیریت میکند، هر برند باید پروژه گوگل کلود اختصاصی خود را داشته باشد. اطلاعات کاربری که در صفحه رضایتنامه نشان داده میشود، مانند نام برنامه، لوگو، ایمیل پشتیبانی و لینکهای مربوط به شرایط خدمات و سیاست حفظ حریم خصوصی، در سطح پروژه پیکربندی میشوند. این بدان معناست که تمام شناسههای کلاینت OAuth که در یک پروژه واحد ایجاد میشوند، برند یکسانی خواهند داشت. اختصاص پروژه مخصوص به هر برند، تضمین میکند که کاربران برند و اطلاعات حقوقی صحیح را برای برنامه خاصی که استفاده میکنند، مشاهده میکنند.
یک ایمیل پشتیبانی عمومی ارائه دهید
آدرس ایمیل پشتیبانی کاربر به صورت عمومی در صفحه رضایت OAuth نمایش داده میشود. برای حفظ حرفهایگری و اطمینان از تداوم، همیشه به جای آدرس ایمیل شخصی یک کارمند، یک ایمیل پشتیبانی عمومی (مثلاً
support@yourdomain.com) را در پیکربندی صفحه رضایت OAuth پروژه Google Cloud پیکربندی کنید. برای جزئیات بیشتر به این صفحه مراجعه کنید.کلاینت OAuth برای هر پلتفرم
شما باید برای هر پلتفرمی که برنامه شما در آن اجرا میشود (مثلاً وب، اندروید، iOS) یک کلاینت OAuth جداگانه ایجاد کنید، که همه در یک پروژه Google Cloud باشند. استفاده از نوع کلاینت صحیح برای هر پلتفرم به دو دلیل اصلی بسیار مهم است:
- امنیت پیشرفته : هر نوع کلاینت ویژگیهای امنیتی مختص به پلتفرم را فعال میکند. به عنوان مثال، یک کلاینت اندروید را میتوان با نام بسته و گواهی امضای آن قفل کرد و از استفاده غیرمجاز از شناسه کلاینت شما جلوگیری کرد.
- عملکرد مناسب : تضمین میکند که برنامه شما به درستی با SDKها و ویژگیهای خاص پلتفرم، مانند Credential Manager در اندروید یا Sign in with Google SDK برای iOS، ادغام میشود.
این ساختار همچنین تجربه کاربری را ساده میکند. از آنجایی که رضایت در سطح پروژه Google Cloud مدیریت میشود، کاربران فقط باید یک بار آن را به برنامه شما در تمام پلتفرمها اعطا کنند. برای جزئیات بیشتر، به سیاستهای رسمی OAuth 2.0 مراجعه کنید.
تکمیل تأیید برنامه OAuth
برای اینکه برنامهی کاربردی شما نام و لوگوی خود را نمایش دهد، باید تأیید شود. نوع تأیید به دادههایی که از کاربر درخواست میکنید بستگی دارد.
- ورود با گوگل فقط حوزههای احراز هویت (
email،profileوopenid) را درخواست میکند، و مشمول تأیید برند سادهتری است. این فرآیند عموماً سریعتر است و بر تأیید هویت برند شما تمرکز دارد.
برای کمک به شما در برنامهریزی جدول زمانی راهاندازی، گوگل انواع مختلف تأیید و زمانهای بررسی مورد انتظار آنها را به تفکیک ارائه میدهد. برای جزئیات بیشتر در مورد سیاستهای تأیید، به مرکز راهنمایی تأیید برنامه OAuth مراجعه کنید.
- ورود با گوگل فقط حوزههای احراز هویت (
امنیت و مدیریت توکن
این بخش بر الزامات زمان اجرا و اقدامات امنیتی که توسعهدهندگان باید روی سرورهای backend خود پیادهسازی کنند، تمرکز دارد.
توکنهای Google ID را با backend خود ادغام کنید
- تأیید توکن شناسه : همیشه صحت توکن شناسه گوگل را در سرور بکاند خود تأیید کنید. هرگز به یک توکن صرفاً به این دلیل که از کلاینت شما ارسال شده است، اعتماد نکنید. توصیه میشود برای این تأیید از یک کتابخانه کلاینت API گوگل استفاده کنید. برای جزئیات بیشتر به بخش تأیید توکن شناسه گوگل در سمت سرور مراجعه کنید.
- از ادعای
subاستفاده کنید : فقط از فیلدsubتوکن شناسه گوگل به عنوان شناسه برای کاربر استفاده کنید زیرا در بین تمام حسابهای گوگل منحصر به فرد و پایدار است و هرگز دوباره استفاده نمیشود. شما باید فیلدsubرا ذخیره کرده و آن را در سیستم مدیریت حساب خود به کاربر مرتبط کنید. در حالی که میتوانید از آدرس ایمیل توکن شناسه برای بررسی اینکه آیا کاربر حساب کاربری دارد یا خیر استفاده کنید، از آدرس ایمیل به عنوان شناسه استفاده نکنید زیرا یک حساب گوگل میتواند چندین آدرس ایمیل در مقاطع زمانی مختلف داشته باشد.
لغو توکنها هنگام حذف حساب کاربری
اکیداً توصیه میشود به کاربرانی که با گوگل وارد سیستم میشوند، امکان جدا کردن حساب گوگل خود از برنامهتان را بدهید. اگر کاربری تصمیم به حذف حساب خود گرفت، باید تمام توکنهای دسترسی و رفرش را که برنامه شما دریافت کرده است، لغو کنید.
برای جزئیات بیشتر در مورد ابطال توکن سمت کلاینت، به مستندات وب ، اندروید و iOS مراجعه کنید. برای ابطال توکن سمت سرور، به بخش استفاده از OAuth 2.0 برای برنامههای وب سرور مراجعه کنید.
احراز هویت را از مجوز جدا کنید
کیتهای توسعه نرمافزار (SDK) ورود با گوگل فقط محدودههای مورد نیاز برای احراز هویت را درخواست میکنند. اگر برنامه شما نیاز به دسترسی به سایر سرویسهای گوگل (مانند تقویم گوگل یا درایو) دارد، باید این مجوزها را جداگانه و فقط زمانی که کاربر سعی در انجام عملی دارد که به آنها نیاز دارد، درخواست کنید. برای جزئیات بیشتر به بخش «لحظات احراز هویت و مجوز جداگانه» مراجعه کنید.
بهترین شیوههای امنیتی
برای یکپارچهسازی امن، همیشه توکن شناسه را در سرور backend خود با استفاده از کتابخانه کلاینت Google API تأیید کنید. برای محافظت جامعتر در برابر تهدیدات مختلف، بسته امنیتی و محافظت بین حسابها (RISC) را پیادهسازی کنید. علاوه بر این، برای برنامههای iOS، اکیداً توصیه میشود که App Check را ادغام کنید تا اطمینان حاصل شود که درخواستها از برنامه معتبر شما ارسال میشوند.
تجربه کاربری (UX)
این بخش بر بهینهسازی عناصر کاربرپسند و جریانهای ورود/ثبتنام تمرکز دارد.
دکمه را به طور برجسته نمایش دهید : دکمه ورود با گوگل باید در صفحه ورود و ثبت نام شما به وضوح قابل مشاهده و دسترسی باشد.
دستورالعملهای برند را دنبال کنید : از دکمههای ورود رسمی برند گوگل استفاده کنید تا از یک تجربه کاربری سازگار و قابل اعتماد اطمینان حاصل کنید. دستورالعملهای رسمی ورود با برند گوگل را مرور کنید.
ثبت نام بدون مشکل : برای کاربران جدید، به محض اولین ورود موفقیتآمیزشان با گوگل، به طور خودکار یک حساب کاربری ایجاد کنید یا کاربران را به جریان ایجاد حساب کاربری جدید هدایت کنید. در قسمت مدیریت، بررسی کنید که آیا کاربری با
subداده شده وجود دارد یا خیر؛ در غیر این صورت، یک حساب کاربری جدید ایجاد کنید. این کار زحمت ثبت نام را به حداقل میرساند.ورود ساده : برای کاربرانی که دوباره به برنامه شما مراجعه میکنند، از شناسه
subبرای شناسایی و تأیید اعتبار آنها در حساب کاربری فعلیشان استفاده کنید. ویژگیهایی مانند ورود خودکار برای وب و اندروید را پیادهسازی کنید تا آنها بتوانند سریع و ایمن به برنامه شما بازگردند.مدیریت روشهای ورود با شبکههای اجتماعی : یک بخش متمرکز «حسابهای متصل» در تنظیمات کاربر ارائه میدهد که در آن کاربران میتوانند روشهای مختلف ورود با شبکههای اجتماعی (مثلاً گوگل) را مدیریت کنند.
پیوند دادن : برای کاربران فعلی که از روشهای دیگر (مثلاً نام کاربری و رمز عبور) استفاده میکنند، دکمه «ورود با گوگل» را فراهم کنید. کلیک بر روی این دکمه، فرآیند احراز هویت را برای پیوند دادن حساب گوگل آنها به نمایه موجودشان آغاز میکند.
لغو پیوند : گزینهای برای قطع ارتباط حساب کاربری ارائه دهید. برای تکمیل این کار، باید توکنها را لغو کرده و ارتباط گوگل را از پایگاه داده خود حذف کنید.
پیادهسازی اندروید (برنامهها و بازیها)
برنامههای استاندارد اندروید
برای پیادهسازیهای اندروید، باید از Credential Manager استفاده کنید. این رویکرد، رویکرد پیشنهادی برای مدیریت اعتبارنامههای کاربر است و یک تجربه ورود یکپارچه، امن و سازگار در اندروید را فراهم میکند.
برای پیادهسازی از شناسه کلاینت OAuth برای اندروید استفاده کنید. اگر قبلاً پیادهسازی ورود با گوگل را در پلتفرمهای دیگر (مثلاً وب، iOS) دارید، باید یک شناسه کلاینت OAuth جدید از نوع اندروید در همان پروژه Google Cloud ایجاد کنید.
جریانهای پیادهسازی
یک پیادهسازی قوی باید شامل رابط کاربری برگه پایانی Credential Manager و دکمه ورود با گوگل باشد.
- برگه پایانی : این یک پیام کمدردسر و مبتنی بر توسعهدهنده است که توسط Credential Manager هنگام ورود کاربر به صفحه ورود به سیستم نمایش داده میشود.
- دکمه ورود با گوگل : این یک فرآیند ورود صریح و آغاز شده توسط کاربر است که کاربر میتواند برای شروع روی آن ضربه بزند.
- پیکربندی دقیق پروژه Google Cloud ضروری است. این شامل ایجاد انواع صحیح شناسههای کلاینت OAuth و ارائه جزئیات خاص مانند اثر انگشت گواهی
SHA-1برنامه شما میشود. برای اطمینان از راهاندازی صحیح، راهنمای رسمی توسعهدهندگان اندروید را به طور دقیق دنبال کنید.
شما همیشه باید جریان دکمه (Button) را لحاظ کنید، زیرا ممکن است کاربر برگه پایینی را نادیده بگیرد یا آن را در تنظیمات خود غیرفعال کرده باشد. دکمه تضمین میکند که آنها همیشه میتوانند فرآیند ورود به سیستم را آغاز کنند.
استراتژی جایگذاری
ورود با دکمه گوگل:
- مکان : دکمه ورود با گوگل را در صفحات ثبت نام یا ورود اختصاصی خود نمایش دهید.
- قابلیت مشاهده : آن را به طور برجسته در کنار سایر روشهای ورود به سیستم، مانند فیلدهای نام کاربری و رمز عبور یا سایر ارائه دهندگان ورود به سیستم اجتماعی قرار دهید.
برگه پایین مدیریت اعتبارنامه:
- تریگر (Trigger) : بامشیت (bottomsheet) باید به طور خودکار هنگام اجرای صفحه ورود یا اجرای برنامه فراخوانی شود. نباید با فشردن یک دکمه توسط کاربر، فعال شود.
- ورود خودکار : برای کاربرانی که دوباره به برنامه شما برگشتهاند، اکیداً توصیه میشود که گزینه ورود خودکار را در Credential Manager فعال کنند. این کار به کاربرانی که قبلاً رضایت خود را اعلام کردهاند اجازه میدهد بدون هیچ تعاملی دوباره وارد برنامه شما شوند.
بازیهای اندروید
برای بازیهای اندروید، Credential Manager رویکرد پیشنهادی نیست. در عوض، توسعهدهندگان بازی باید از رویکرد Google Play Games Services (PGS) استفاده کنند که بر هویت گوگل چند پلتفرمی با استفاده از ورود با گوگل تمرکز دارد. میتوانید جزئیات بیشتر را در مستندات هویت گوگل چند پلتفرمی با استفاده از ورود با گوگل بیابید.
پیادهسازی iOS
از ورود رسمی با Google SDK استفاده کنید
برای برنامههای iOS، باید از کیت توسعه نرمافزار رسمی ورود با گوگل برای iOS و macOS استفاده کنید. این کتابخانه امنترین و کاربرپسندترین روش برای ادغام ورود با گوگل را ارائه میدهد.
برای پیادهسازی از شناسه کلاینت OAuth برای iOS استفاده کنید. اگر قبلاً پیادهسازی ورود با گوگل را در پلتفرمهای دیگر (مثلاً وب، اندروید) دارید، باید یک نوع شناسه کلاینت OAuth جدید برای iOS در همان پروژه Google Cloud ایجاد کنید.
دکمه «ورود با گوگل» را اضافه کنید
- محل قرارگیری : دکمه «ورود با گوگل» را به نمای ورود به سیستم برنامه خود، هم در صفحات ثبت نام و هم در صفحات ورود، اضافه کنید. آن را به طور برجسته در کنار سایر روشهای ورود به سیستم، مانند فیلدهای نام کاربری و رمز عبور یا سایر ارائه دهندگان ورود به سیستم از طریق شبکههای اجتماعی، قرار دهید.
- استفاده از کامپوننتهای پیشنهادی : از کامپوننتهای رسمی دکمه که توسط SDK برای SwiftUI و UIKit ارائه شدهاند، استفاده کنید. این کامپوننتها بهطور خودکار دکمهای تولید میکنند که با دستورالعملهای برندسازی گوگل مطابقت دارد و روش پیشنهادی برای نمایش دکمه است.
افزایش امنیت با App Check
با تأیید اینکه درخواستهای ارسالی به کلاینت OAuth 2.0 شما از برنامهی معتبر شما سرچشمه میگیرند، از منابع backend خود در برابر سوءاستفاده محافظت کنید. App Check از یک ارائهدهندهی گواهی برای تأیید اینکه درخواستها از یک نمونهی واقعی و بدون دستکاری برنامهی شما هستند استفاده میکند و درخواستهای غیرواقعی را رد میکند. برای جزئیات بیشتر به App Check برای ورود به سیستم با گوگل در iOS مراجعه کنید.
پیادهسازی وب
راهنمایی برای وبسایتها و برنامههای کاربردی وب.
از کتابخانه رسمی جاوا اسکریپت ورود به سیستم با گوگل استفاده کنید
برای پیادهسازیهای وب، باید از کتابخانه رسمی ورود با گوگل جاوا اسکریپت استفاده کنید. این آخرین نسل از کتابخانههای هویت گوگل برای وب است و شامل هر دو ویژگی دکمه و تکضربهای میشود.
برای پیادهسازی از شناسه کلاینت OAuth برای وب استفاده کنید. اگر قبلاً پیادهسازی ورود با گوگل را در پلتفرمهای دیگر (مثلاً اندروید، iOS) دارید، باید یک شناسه کلاینت OAuth نوع وب جدید در همان پروژه Google Cloud ایجاد کنید.
پیادهسازی هر دو جریان دکمهای و تکضربهای
بهترین روش این است که هم دکمه «ورود با گوگل» و هم تجربه ورود با یک لمس را همزمان پیادهسازی کنید.
- ورود با دکمه گوگل : این یک جریان ورود/خروج صریح و آغاز شده توسط کاربر است.
- یک لمس : این قابلیت، فرآیند ورود یا ثبتنام را بدون وقفه و بدون مشکل فراهم میکند.
- برای هر دو پیادهسازی، از همان شناسه کلاینت OAuth برای وب استفاده کنید.
شما همیشه باید دکمه را به عنوان گزینه اصلی ورود به سیستم در نظر بگیرید. کاربران میتوانند در تنظیمات حساب گوگل خود، گزینه One Tap را غیرفعال یا غیرفعال کنند، اما دکمه همیشه در دسترس خواهد بود و تضمین میکند که کاربران هرگز از ورود به سیستم منع نمیشوند.
استراتژی جایگذاری
ورود با دکمه گوگل:
- مکان : دکمه شخصیسازیشدهی ورود با گوگل را در صفحات ثبتنام یا ورود اختصاصی خود نمایش دهید.
- توجه داشته باشید که هیچ الگوی واحدی وجود ندارد که برای همه سایتها بهترین عملکرد را داشته باشد (مثلاً تغییر مسیر در مقابل پنجره بازشو ). تیم طراحی وب یا UX شما باید این جریانها را آزمایش و بهینه کند تا نرخ تکمیل ثبتنام و ورود به سیستم را به حداکثر برساند.
- قابلیت مشاهده : آن را به طور برجسته در کنار سایر روشهای ورود به سیستم، مانند فیلدهای نام کاربری و رمز عبور یا سایر ارائه دهندگان ورود به سیستم اجتماعی قرار دهید.
- بررسی : بخش ملاحظات دکمه ورود با گوگل برای پیکربندی و عملکرد بهینه.
- مکان : دکمه شخصیسازیشدهی ورود با گوگل را در صفحات ثبتنام یا ورود اختصاصی خود نمایش دهید.
یک ضربه سریع:
- مکان : اعلان One Tap را در چندین صفحه از وبسایت خود، مانند صفحات محصول، صفحات مقاله و حتی صفحه اصلی نمایش دهید. مزیت اصلی One Tap این است که به کاربران اجازه میدهد بدون خارج شدن از صفحه فعلی خود، وارد سیستم شوند یا یک حساب کاربری ایجاد کنند.
- ورود خودکار : برای کاربران قدیمی، اکیداً توصیه میشود گزینه ورود خودکار را در One Tap فعال کنند. این به کاربران قدیمی (که قبلاً رضایت خود را اعلام کردهاند) اجازه میدهد بدون هیچ تعاملی دوباره وارد برنامه شما شوند.
- بررسی : بخش ملاحظات One Tap برای پیکربندی و عملکرد بهینه.