از ورود به سیستم Google+‎ مهاجرت کنید

گام هایی برای به حداقل رساندن تأثیر تغییرات دامنه بر روی کاربران

  1. اگر برنامه شما به آدرس ایمیل یک کاربر تأیید شده نیاز دارد و قبلاً از profile.emails.read برای این منظور استفاده کرده اید، به جای آن email استفاده کنید.
  2. با درخواست تأیید تأیید شده برای profile.emails.read تأییدیه دریافت کنید. به چگونه برای تأیید ارسال کنم مراجعه کنید؟
  3. توکن کاربر قبلی را به محدوده ای که باید حذف شود لغو کنید یا دسترسی به برنامه را به طور کامل حذف کنید. به عنوان مثال، یک نشانه با دسترسی profile.emails.read باید لغو شود. توصیه می کنیم زمانی که کاربران در برنامه شما هستند، لغو را اعمال کنید تا بتوانید بلافاصله رضایت کاربر را دریافت کنید.
  4. از کاربران خود بخواهید که مجدداً با دامنه جدید، مانند email ، بدون profile.emails.read موافقت کنند.
  5. محدوده‌ای را که قرار است از پیکربندی صفحه رضایت OAuth APIهای Google شما حذف شود، حذف کنید.

تغییراتی که باید برای انتقال سایت خود از Google+ Sign-In به Google Sign-In انجام دهید، بستگی به جریان ورود Google+‎ مورد استفاده شما دارد. به طور کلی، انتقال از شما می‌خواهد که دکمه ورود به سیستم، محدوده‌های درخواستی و دستورالعمل‌های نحوه بازیابی اطلاعات نمایه از Google را به‌روزرسانی کنید.

وقتی دکمه ورود به سیستم خود را به روز می کنید، به G+ مراجعه نکنید یا از رنگ قرمز استفاده نکنید. با دستورالعمل های برندسازی به روز ما مطابقت داشته باشید.

اکثر برنامه‌های ورود به سیستم G+ ترکیبی از دامنه‌ها را درخواست کردند: plus.login ، plus.me و plus.profile.emails.read . شما باید محدوده های خود را به صورت زیر بازنگری کنید:

محدوده قدیمی دامنه جدید
plus.login profile
plus.me openid
plus.profile.emails.read email

بسیاری از پیاده‌کننده‌های Google+ Sign-In از جریان کد استفاده کردند. این بدان معناست که برنامه‌های Android، iOS یا جاوا اسکریپت یک کد OAuth را از Google دریافت می‌کنند و مشتری آن کد را به همراه محافظت از جعل درخواست‌های بین سایتی به سرور ارسال می‌کند. سپس سرور کد را تأیید می‌کند و نشانه‌های تازه‌سازی و دسترسی را به دست می‌آورد تا اطلاعات نمایه کاربر را از people.get API استخراج کند.

Google اکنون توصیه می‌کند که یک نشانه شناسه درخواست کنید و آن رمز شناسایی را از مشتری خود به سرور خود ارسال کنید. توکن‌های شناسه دارای محافظ‌های جعل بین سایتی داخلی هستند و همچنین می‌توانند به صورت ایستا در سرور شما تأیید شوند، که از تماس API اضافی برای دریافت اطلاعات نمایه کاربر از سرورهای Google جلوگیری می‌کند. دستورالعمل ها را برای تأیید اعتبار شناسه های روی سرور خود دنبال کنید.

اگر همچنان ترجیح می دهید از جریان کد برای به دست آوردن اطلاعات نمایه استفاده کنید، می توانید این کار را انجام دهید. هنگامی که سرور شما یک رمز دسترسی دارد، باید اطلاعات نمایه کاربر را از نقاط پایانی userinfo مشخص شده در سند کشف ورود به سیستم ما بدست آورید. فرمت پاسخ API متفاوت از پاسخ نمایه +Google است، بنابراین باید تجزیه خود را به قالب جدید به‌روزرسانی کنید.

یک دکمه ورود به سیستم HTML را انتقال دهید

اگر با اختصاص کلاس g-signin به یک عنصر، دکمه ورود به سیستم +Google را در صفحه خود قرار داده اید، تغییرات زیر را اعمال کنید:

  • هنگامی که شناسه مشتری خود را در یک تگ <meta> ، یک ویژگی data- یا یک شی پارامتر مشخص می‌کنید، clientid رشته را مانند مثال زیر به client_id تغییر دهید:

    <!-- Google+ Sign-in (old) -->
    <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
    

    <!-- Google Sign-in (new) -->
    <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
    
  • به جای g-signin کلاس g-signin2 را به عنصر دکمه ورود به سیستم اختصاص دهید. همچنین، مانند مثال زیر، به جای یک تماس پاسخ جداگانه، پاسخ های موفقیت و شکست را مشخص کنید:

    <!-- Google+ Sign-in (old) -->
    <div
      class="g-signin"
      data-callback="signinCallback">
    </div>
    

    <!-- Google Sign-in (new) -->
    <div
      class="g-signin2"
      data-onsuccess="onSignIn"
      data-onfailure="onSignInFailure">
    </div>
    
  • به جای یک کنترل کننده پاسخ به تماس، کنترل کننده های موفقیت و شکست را مانند مثال زیر تعریف کنید:

    // Google+ Sign-in (old)
    function signinCallback(authResult) {
      if (authResult['status']['signed_in']) {
        // Handle successful sign-in
      } else {
        // Handle sign-in errors
        console.log('Sign-in error: ' + authResult['error']);
      }
    }
    

    // Google Sign-in (new)
    function onSignIn(googleUser) {
      // Handle successful sign-in
    }
    function onSignInFailure() {
      // Handle sign-in errors
    }
    
  • این تغییرات دامنه های پیش فرض شما را به profile email openid به روز می کند. می‌توانید اطلاعات اولیه نمایه کاربر، مانند نام، ایمیل و URL تصویر عکس را به شرح زیر دریافت کنید:

    // Google Sign-in (new)
    function onSignIn(googleUser) {
      let profile = googleUser.getBasicProfile();
      let fullName = profile.getName();
      let email = profile.getEmail();
      let imageUrl = profile.getImageUrl();
    }
    

یک دکمه ورود به سیستم با رندر پویا را انتقال دهید

اگر با فراخوانی gapi.signin.render() یک دکمه ورود به سیستم +Google را در صفحه خود قرار داده اید، تغییرات زیر را اعمال کنید:

  • هنگامی که شناسه مشتری خود را در یک تگ <meta> ، یک ویژگی data- یا یک شی پارامتر مشخص می‌کنید، clientid رشته را مانند مثال زیر به client_id تغییر دهید:

    <!-- Google+ Sign-in (old) -->
    <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
    

    <!-- Google Sign-in (new) -->
    <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
    
  • دکمه ورود به سیستم را با gapi.signin2.render() به جای gapi.signin.render() رندر کنید، مانند مثال زیر:

    // Google+ Sign-in (old)
    gapi.signin.render('myButton', additionalParams);
    

    // Google Sign-in (new)
    gapi.signin2.render('myButton', additionalParams);
    
  • به جای یک کنترل کننده پاسخ به تماس، کنترل کننده های موفقیت و شکست را مانند مثال زیر تعریف کنید:

    // Google+ Sign-in (old)
    function signinCallback(authResult) {
      if (authResult['status']['signed_in']) {
        // Handle successful sign-in
      } else {
        // Handle sign-in errors
        console.log('Sign-in error: ' + authResult['error']);
      }
    }
    

    // Google Sign-in (new)
    function onSignIn(googleUser) {
      // Handle successful sign-in
    }
    function onSignInFailure() {
      // Handle sign-in errors
    }
    

این تغییرات دامنه های پیش فرض شما را به profile email openid به روز می کند. شما می توانید اطلاعات اولیه پروفایل کاربر را با متد getBasicProfile() بدست آورید.

یک جریان ورود به سیستم آغاز شده با جاوا اسکریپت را انتقال دهید

اگر جریان ورود به سیستم را با فراخوانی به gapi.auth.signIn() شروع کرده اید، زمانی که کاربران روی دکمه ورود کلیک می کنند، تغییرات زیر را انجام دهید:

  • هنگامی که شناسه مشتری خود را در یک تگ <meta> ، یک ویژگی data- یا یک شی پارامتر مشخص می‌کنید، clientid رشته را به client_id تغییر دهید، مانند مثال زیر:

    <!-- Google+ Sign-in (old) -->
    <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
    

    <!-- Google Sign-in (new) -->
    <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
    
  • از gapi.auth2.attachClickHandler() برای شروع جریان ورود به سیستم با فشار دادن دکمه مانند مثال زیر استفاده کنید:

    // Google+ Sign-in (old)
    var signinButton = document.getElementById('signinButton');
    signinButton.addEventListener('click', function() {
      gapi.auth.signIn(additionalParams);
    });
    

    // Google Sign-in (new)
    auth2 = gapi.auth2.init();
    auth2.attachClickHandler('signinButton', additionalParams, onSignIn, onSignInFailure);
    
  • به جای یک کنترل کننده پاسخ به تماس، کنترل کننده های موفقیت و شکست را مانند مثال زیر تعریف کنید:

    // Google+ Sign-in (old)
    function signinCallback(authResult) {
      if (authResult['status']['signed_in']) {
        // Handle successful sign-in
      } else {
        // Handle sign-in errors
        console.log('Sign-in error: ' + authResult['error']);
      }
    }
    

    // Google Sign-in (new)
    function onSignIn(googleUser) {
      // Handle successful sign-in
    }
    function onSignInFailure() {
      // Handle sign-in errors
    }
    

این تغییرات دامنه های پیش فرض شما را به profile email openid به روز می کند. شما می توانید اطلاعات اولیه پروفایل کاربر را با فراخوانی متد getBasicProfile() دریافت کنید.

انتقال یک جریان سمت سرور ترکیبی

اگر از JavaScript API برای دریافت یک کد مجوز یکبار مصرف برای ارسال به سرور خود استفاده کرده اید، تغییرات زیر را اعمال کنید:

  • دامنه را از https://www.googleapis.com/auth/plus.login به profile تغییر دهید.

  • از متد gapi.auth2.grantOfflineAccess() با تابع callback موجود خود مانند مثال زیر استفاده کنید:

    <!-- Google+ Sign-in (old) -->
    <div class="g-signin"
      data-scope="https://www.googleapis.com/auth/plus.login"
      data-clientid="YOUR_CLIENT_ID"
      data-redirecturi="postmessage"
      data-accesstype="offline"
      data-callback="signInCallback">
    </div>
    

    // Google Sign-in (new)
    auth2 = gapi.auth2.init({
      client_id: 'YOUR_CLIENT_ID',
      scope: 'profile'
    });
    
    ...
    
    auth2.grantOfflineAccess().then(signInCallback);
    

اگر به ایمیل کاربر نیز نیاز دارید، email به پارامتر scope اضافه کنید.