Thu hồi mã thông báo người dùng trước đó đối với phạm vi cần xoá hoặc xoá hoàn toàn quyền truy cập vào ứng dụng. Ví dụ: bạn nên thu hồi mã thông báo có quyền truy cập profile.emails.read. Bạn nên áp dụng lệnh thu hồi trong khi người dùng đang sử dụng ứng dụng để có thể nhận được sự đồng ý của người dùng ngay lập tức.
Yêu cầu người dùng đồng ý lại với phạm vi mới, chẳng hạn như email, mà không cần profile.emails.read.
Xoá phạm vi sắp ngừng hoạt động khỏi cấu hình màn hình xin phép bằng OAuth của API của Google.
Để di chuyển ứng dụng của bạn từ tính năng Đăng nhập bằng Google+ sang tính năng Đăng nhập bằng Google, bạn cần cập nhật nút đăng nhập, phạm vi được yêu cầu và hướng dẫn về cách truy xuất thông tin hồ sơ từ Google. Hãy làm theo tài liệu về tính năng Đăng nhập bằng Google cho Android để biết hướng dẫn đầy đủ.
Khi cập nhật nút đăng nhập, bạn không được đề cập đến G+ hoặc sử dụng màu đỏ.
Tuân thủ các nguyên tắc ghi nhãn đã cập nhật của chúng tôi.
Hầu hết các ứng dụng Đăng nhập bằng Google+ đều yêu cầu một số tổ hợp phạm vi:
plus.login, plus.me và plus.profile.emails.read. Bằng cách sử dụng GoogleSignInOptions.Builder với tuỳ chọn DEFAULT_SIGN_IN, bạn sẽ tự động yêu cầu phạm vi profile cung cấp tên và ảnh hồ sơ của người dùng. Nếu cũng muốn có địa chỉ email của người dùng, bạn nên gọi .requestEmail() khi tạo các tuỳ chọn đăng nhập bằng Google.
Nhiều nhà triển khai tính năng Đăng nhập bằng Google+ đã sử dụng quy trình mã. Điều này có nghĩa là các ứng dụng Android, iOS hoặc JavaScript sẽ nhận được mã uỷ quyền OAuth từ Google, sau đó ứng dụng gửi mã đó trở lại máy chủ, cùng với biện pháp bảo vệ chống giả mạo trên nhiều trang web. Sau đó, máy chủ sẽ xác thực mã, đồng thời nhận mã làm mới và mã truy cập để lấy thông tin hồ sơ người dùng từ API people.get.
Giờ đây, Google khuyên bạn nên yêu cầu mã thông báo nhận dạng và gửi mã thông báo nhận dạng từ máy khách đến máy chủ. Mã thông báo nhận dạng có tính năng chống giả mạo trên nhiều trang web tích hợp sẵn và cũng có thể được xác minh tĩnh trên máy chủ của bạn, nhờ đó tránh được lệnh gọi API bổ sung để lấy thông tin hồ sơ người dùng từ máy chủ của Google. Làm theo hướng dẫn để xác thực mã thông báo nhận dạng trên máy chủ.
Nếu vẫn muốn sử dụng luồng mã để lấy thông tin hồ sơ, bạn có thể làm như vậy. Sau khi máy chủ của bạn có mã thông báo truy cập, bạn cần lấy thông tin hồ sơ người dùng từ các điểm cuối userinfo được chỉ định trong tài liệu Khám phá về tính năng Đăng nhập. Phản hồi của API được định dạng khác với phản hồi của hồ sơ trên Google+, vì vậy, bạn cần cập nhật phân tích cú pháp của mình sang định dạng mới.
Nếu đang sử dụng GoogleAuthUtil.getToken hoặc Plus.API, bạn nên di chuyển sang API Đăng nhập mới nhất để tăng tính bảo mật và mang lại trải nghiệm tốt hơn cho người dùng.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2024-11-09 UTC."],[[["\u003cp\u003eGoogle Sign-In for Android is outdated; migrate to Credential Manager for enhanced security and user experience, except for Wear OS 3, 4, and 5.0, which should continue using Google Sign-In for Android until Credential Manager support is available.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eprofile.emails.read\u003c/code\u003e scope is now sensitive; replace it with the \u003ccode\u003eemail\u003c/code\u003e scope and follow provided steps to avoid user disruption and security warnings.\u003c/p\u003e\n"],["\u003cp\u003eGoogle+ Sign-In is fully deprecated; migrate to Google Sign-In and update sign-in elements according to the new branding guidelines.\u003c/p\u003e\n"],["\u003cp\u003eFor server-side authentication, Google recommends using ID tokens instead of the code flow for better security and efficiency.\u003c/p\u003e\n"]]],[],null,["# Migrate from Google+ sign-in\n\n| **Warning:** Google Sign-In for Android is outdated and no longer supported. To ensure the continued security and usability of your app, [migrate\n| to Credential Manager](https://developer.android.com/training/sign-in/credential-manager/) today. Credential Manager supports passkey, password, and federated identity authentication (such as Sign-in with Google), stronger security, and a more consistent user experience. For Wear developers: Credential Manager will be supported in Wear OS 5.1 and later on selected watches. Developers actively supporting Wear OS 3, 4 and 5.0 devices with Sign in with Google should continue using Google Sign-in for Android for your Wear applications. Sign in with Google support will be available on Credential Manager APIs for these versions of WearOS at a later date.\n| **Important:** The scope\n| `profile.emails.read` is now classified as a\n| [sensitive scope](https://support.google.com/cloud/answer/9110914#sensitive-scope-verification).\n| You can achieve the same functionality with the OpenID Connect (OIDC) scope\n| of `email`. To minimize impact on your users, complete the\n| [steps](#steps) in this guide.\n|\n| If you don't complete these steps, any user with an active token that still\n| has access to the scope that we have phased out might be shown an\n| [unverified app screen or \"Sign-in disabled\" message](https://support.google.com/cloud/answer/9110914#verified-but-app-disabled)\n| and receive a Security Center warning to\n| [remove risky access](https://support.google.com/accounts/answer/3466521)\n| to their data. This occurs because the user has an active token where the\n| API scope is no longer verified. If your application doesn't revoke the\n| token as described in the prescribed [steps](#steps), the user\n| might continue to receive a warning.\n\nSteps to minimize the impact of scope changes on users\n------------------------------------------------------\n\n1. If your application requires the email address of an authenticated user, and you've previously used `profile.emails.read` for that purpose, use `email` instead.\n2. Obtain approval for `profile.emails.read` with an approved verification request. Refer to [How do I submit for verification?](https://support.google.com/cloud/answer/9110914#submit-howto)\n3. [Revoke](/identity/protocols/oauth2/native-app#tokenrevoke) the prior user token to the scope that's to be removed or remove access to the application entirely. For example, a token with `profile.emails.read` access should be revoked. We recommend you apply the revocation while your users are in your application so that you can get user consent immediately.\n4. Prompt your users to re-consent with the new scope, such as `email`, without `profile.emails.read`.\n5. Remove the scope that's to be phased out of your Google APIs OAuth consent screen configuration.\n\n| The Google+ Sign-in feature has been fully deprecated as of March 7, 2019.\n|\n| Developers should migrate to the more comprehensive\n| [Google Sign-in](/identity/sign-in/android) authentication system.\n|\n| Migration tips are also available for\n| [Web](/identity/sign-in/web/quick-migration-guide).\n\nTo migrate your app from Google+ Sign-In to Google Sign-In, you need to\nupdate your sign-in button, requested scopes, and instructions on how to\nretrieve profile information from Google. Follow our\n[Google Sign In for Android documentation](/identity/sign-in/android/legacy-sign-in)\nfor full instructions.\n\nWhen you update your sign-in button, do not refer to G+ or use the color red.\nConform to our updated [branding guidelines](/identity/branding-guidelines).\n\nMost Google+ Sign-In applications requested some combination of the scopes:\n`plus.login`, `plus.me` and `plus.profile.emails.read`. By using\n`GoogleSignInOptions.Builder` with the `DEFAULT_SIGN_IN` option, you will\nautomatically request the `profile` scope which provides the user's name and\nprofile picture. If you also want the user's email address, you should call\n`.requestEmail()` when constructing Google sign-in options.\n\nMany implementers of Google+ Sign-In used the\n[code flow](/identity/protocols/oauth2/native-app#handlingresponse). This means\nthat the Android, iOS or JavaScript apps obtain an OAuth authorization code from\nGoogle, and the client sends that code back to the server, along with cross-site\nrequest forgery protection. The server then validates the code and obtains\nrefresh and access tokens to pull user profile information from the `people.get`\nAPI.\n\nGoogle now recommends that you request an ID token and send the ID token from\nyour client to your server. ID tokens have cross-site forgery protections\nbuilt-in and also can be statically verified on your server, which avoids an\nextra API call to get user profile information from Google's servers. Follow the\ninstructions to\n[validate ID tokens on your server](/identity/sign-in/android/backend-auth#verify-the-integrity-of-the-id-token).\n\nIf you still prefer to use the code flow to obtain profile information,\nyou may do so. Once your server has an access token, you need to\n[obtain user profile information](/identity/protocols/oauth2/openid-connect#obtaininguserprofileinformation)\nfrom the `userinfo` endpoints specified in our Sign-In\n[Discovery document](/identity/protocols/oauth2/openid-connect#discovery). The\nAPI response is formatted differently than the Google+ profile response, so you\nneed to update your parsing to the new format.\n\nIf you are using `GoogleAuthUtil.getToken` or `Plus.API`, you should\n[migrate](/identity/sign-in/android/migration-guide)\nto the newest Sign-In API for greater security and a better user experience."]]