ورود با شبکه‌های اجتماعی - REST

کاربران با استفاده از روش «ورود با حساب‌های کاربری وب‌سایت‌های معتبر و یا شبکه‌های اجتماعی» (مانند گوگل، اینستاگرام و …) می توانند بدون وارد کردن اطلاعات خود، اعتبارسنجی و ثبت نام شوند. همچنین توسعه‌دهندگان اپلیکیشن می توانند اطلاعات مورد نیاز کاربر را با توجه به حساب کاربری وی در این گونه وب‌سایت ها و یا شبکه های اجتماعی بگیرند.

نکته: در صورتی که با مفهوم REST و سرویس‌های سمت سرور و یا با دستور curl آشنایی ندارید، به آشنایی با REST مراجعه کنید.

پیش‌نیازها

  1. در صورتی که با سرویس کاربران آشنایی ندارید، به معرفی سرویس کاربران مراجعه کنید.
  2. در صورتی که هنوز در پنل توسعه‌دهنده خود تنظیمات لازم برای سرویس کاربران را انجام نداده‌اید، به تنظیمات پنل مراجعه کنید.

نحوه‌ی کار ورود با حساب کاربری گوگل

ورود با گوگل یک روش امن احراز هویت است که به کاربران اجازه می‎دهد از حساب کاربری گوگل خود – همان حسابی که برای Gmail، Play، Drive و سایر سرویس‌های Google استفاده می‌کنند – برای وارد شدن به یک برنامه یا سرویس دیگر (در اینجا بکتوری) بهره ببرند و بدین وسیله سختی عمل ورود را برای آنان کاهش داده، تجربه‌ی کاربری بهتری را فراهم کند.

به منظور راه اندازی این سرویس ما از اعتبارسنجی دو مرحله‌ای در گوگل استفاده می‌نماییم. به این ترتیب که در سمت client پس از اینکه کاربر وارد حساب گوگل خود شد، از گوگل درخواست یک کد یک‌بار مصرف برای دسترسی به اطلاعات پایه‌ی آن حساب کاربری کرده و سپس آن کد را به سرور بکتوری ارسال می کند. سرور بکتوری اطلاعات مورد نیاز کاربر را با توجه به کد ارسال شده می گیرد و او را ثبت‌نام و وارد کرده، جواب عملیات ورود را به client ارسال می‎کند. مراحل گفته شده را می توانید بصورت کلی در شکل زیر مشاهده نمایید (برای کسب اطلاعات بیشتر این‌جا را مطالعه کنید.)

Login with Google Sequential Diagram

به منظور استفاده از این سرویس شما می‌بایست برای محصول خود یک پروژه در کنسول توسعه‎دهندگان گوگل یا پنل فایربیس ایجاد کنید و مقادیر Client Id و Client Secret مربوط به Web Application را به بکتوری بدهید. در این مستند ما بر اساس کنسول توسعه دهندگان گوگل پیش می‌رویم. اما همان رویه در پنل فایربیس نیز برقرار است.

ساخت پروژه در کنسول توسعه دهندگان گوگل

  1. به کنسول توسعه دهندگان گوگل بروید و یک پروژه جدید بسازید.
  2. از منوی APIs & services، زیرمنوی Credentials را انتخاب کنید.

    Google Credentials

  3. تب OAuth consent screen را انتخاب و فرم را پر کنید. دقت کنید که فقط دو فیلد ایمیل و نام محصول اجباری هستند.

    Google Consent Screen

  4. تب Credentials را انتخاب کنید و روی دکمه Create credentials کلیک کنید. از منوی باز شده گزینه
 OAuth Client ID را انتخاب کنید.

    Google Create Credentials

  5. در صفحه‌ی باز شده مورد Web application را انتخاب کنید. نام دلخواهی به این client داده و سپس در قسمت Restrictions برای Authorised redirect URIs ادرس http://localhost:8043 را وارد کنید و save کنید (نیازی به پر کردن سایر فیلدها نیست.)

    Google Create Web Client

  6. از pop up باز شده، Client ID و Client secret را کپی کنید (این اطلاعات بعدا از طریق client ذخیره شده قابل دسترسی است.)

    Google Web Client Id & Secret

توجه: در صورتی که بخواهید در برنامه‌ی اندرویدی‌تان از لاگین با گوگل بهره ببرید، باید یک Android OAuth client نیز بسازید که توضیحات آن در بخش اندروید آمده است.

تنظیمات پنل بکتوری

به پنل بکتوری و قسمت تنظیمات سرویس کاربران بروید و Web client ID و Web Client Secret را که در مرحله‌ی قبل کپی کرده بودید، وارد کرده و ذخیره کنید.

Login With Google Panel Settings

گام بعدی