گام هایی برای به حداقل رساندن تأثیر تغییرات دامنه بر روی کاربران
- اگر برنامه شما به آدرس ایمیل یک کاربر تأیید شده نیاز دارد و قبلاً از
profile.emails.read
برای این منظور استفاده کرده اید، به جای آنemail
استفاده کنید. - با درخواست تأیید تأیید شده برای
profile.emails.read
تأییدیه دریافت کنید. به چگونه برای تأیید ارسال کنم مراجعه کنید؟ - توکن کاربر قبلی را به محدوده ای که باید حذف شود لغو کنید یا دسترسی به برنامه را به طور کامل حذف کنید. به عنوان مثال، یک نشانه با دسترسی
profile.emails.read
باید لغو شود. توصیه می کنیم زمانی که کاربران در برنامه شما هستند، لغو را اعمال کنید تا بتوانید بلافاصله رضایت کاربر را دریافت کنید. - از کاربران خود بخواهید که مجدداً با دامنه جدید، مانند
email
، بدونprofile.emails.read
موافقت کنند. - محدودهای را که قرار است از پیکربندی صفحه رضایت 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 اضافه کنید.