Tài liệu tham khảo về ứng dụng JavaScript đăng nhập bằng Google

Tài liệu tham khảo này mô tả các phương thức và thuộc tính ứng dụng JavaScript mà bạn sẽ sử dụng để triển khai tính năng Đăng nhập bằng Google trong các ứng dụng web.

Nếu bạn gặp vấn đề khi sử dụng thư viện, hãy báo cáo vấn đề đó cho kho lưu trữ GitHub của chúng tôi. .

Thiết lập xác thực

Tải thư viện nền tảng API của Google để tạo đối tượng gapi:

<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>

Sau khi thư viện nền tảng tải, hãy tải thư viện auth2:

function init() {
  gapi.load('auth2', function() {
    /* Ready. Make a call to gapi.auth2.init or some other API */
  });
}

gapi.auth2.init(params)

Khởi động đối tượng GoogleAuth. Bạn phải gọi phương thức này trước khi gọi các phương thức của gapi.auth2.GoogleAuth.

Khi khởi chạy đối tượng GoogleAuth, bạn sẽ định cấu hình đối tượng đó bằng mã ứng dụng khách OAuth 2.0 và mọi tuỳ chọn bổ sung mà bạn muốn chỉ định. Sau đó, nếu người dùng đã đăng nhập, đối tượng GoogleAuth sẽ khôi phục trạng thái đăng nhập của người dùng từ phiên trước.

Đối số
params Một đối tượng chứa các cặp khoá-giá trị của dữ liệu cấu hình ứng dụng khách. Hãy xem gapi.auth2.ClientConfig để biết các thuộc tính có thể định cấu hình. Ví dụ:
{
  client_id: 'CLIENT_ID.apps.googleusercontent.com'
}
Giá trị trả về
gapi.auth2.GoogleAuth Đối tượng gapi.auth2.GoogleAuth. Sử dụng phương thức then() để nhận một Lời hứa được phân giải khi đối tượng gapi.auth2.GoogleAuth hoàn tất quá trình khởi chạy.

GoogleAuth.then(onInit, onError)

Gọi hàm onInit khi đối tượng GoogleAuth được khởi chạy đầy đủ. Nếu lỗi xảy ra trong khi khởi chạy (điều này có thể xảy ra trong các trình duyệt cũ không được hỗ trợ), thì hàm onError sẽ được gọi.

Đối số
onInit Hàm được gọi bằng đối tượng GoogleAuth khi đối tượng này được khởi tạo đầy đủ.
onError Hàm được gọi bằng một đối tượng chứa thuộc tính error, nếu GoogleAuth không khởi chạy được.
Giá trị trả về
Lời hứa Promise được thực hiện khi hàm onInit hoàn tất hoặc bị từ chối nếu lỗi khởi chạy xảy ra. Hàm này sẽ phân giải bằng giá trị được trả về từ hàm onInit (nếu có).

Mã lỗi

idpiframe_initialization_failed
Không khởi chạy được iframe bắt buộc từ Google, ví dụ: do môi trường không được hỗ trợ. Thuộc tính details sẽ cung cấp thêm thông tin về lỗi đã xảy ra.

gapi.auth2.ClientConfig

Giao diện đại diện cho các tham số cấu hình khác nhau cho phương thức gapi.auth2.init.

Tham số
client_id string Bắt buộc. Mã ứng dụng khách của ứng dụng, được tìm thấy và tạo trong Bảng điều khiển API của Google.
cookie_policy string Các miền cần tạo cookie đăng nhập. URI, single_host_origin hoặc none. Mặc định là single_host_origin nếu bạn không chỉ định.
scope string Phạm vi yêu cầu, dưới dạng một chuỗi được phân tách bằng dấu cách. Không bắt buộc nếu bạn không đặt fetch_basic_profile thành false.
fetch_basic_profile boolean Tìm nạp thông tin hồ sơ cơ bản của người dùng khi họ đăng nhập. Thêm "hồ sơ", "email" và "openid" vào các phạm vi được yêu cầu. Đúng nếu không chỉ định.
hosted_domain string Miền G Suite mà người dùng phải thuộc về để đăng nhập. Miền này dễ bị khách hàng sửa đổi, vì vậy, hãy nhớ xác minh tài sản miền được lưu trữ của người dùng được trả về. Sử dụng GoogleUser.getHostedDomain() trên ứng dụng và thông báo xác nhận quyền hd trong Mã thông báo nhận dạng trên máy chủ để xác minh miền là như bạn mong đợi.
use_fedcm boolean Không bắt buộc, mặc định là True. Bật hoặc tắt tính năng sử dụng API FedCM của trình duyệt trong khi đăng nhập.
ux_mode string Chế độ trải nghiệm người dùng để sử dụng cho quy trình đăng nhập. Theo mặc định, thao tác này sẽ mở quy trình đồng ý trong một cửa sổ bật lên. Các giá trị hợp lệ là popupredirect.
redirect_uri string Nếu sử dụng ux_mode='redirect', tham số này cho phép bạn ghi đè redirect_uri mặc định sẽ được sử dụng ở cuối luồng đồng ý. redirect_uri mặc định là URL hiện tại đã loại bỏ các tham số truy vấn và mảnh băm.
enable_granular_consent boolean Không bắt buộc. Liệu có bật quyền chi tiết hay không. Nếu bạn đặt thành false, các quyền Tài khoản Google chi tiết hơn sẽ bị vô hiệu hoá đối với mã ứng dụng OAuth được tạo trước năm 2019. Không ảnh hưởng đến Mã ứng dụng khách OAuth được tạo trong hoặc sau năm 2019, vì các quyền chi tiết hơn luôn được bật cho các mã này.
plugin_name string Không bắt buộc. Nếu bạn đặt giá trị này, thì Mã ứng dụng mới được tạo trước ngày 29 tháng 7 năm 2022 có thể sử dụng Thư viện Google Platform cũ. Theo mặc định, Mã ứng dụng mới tạo hiện bị chặn sử dụng Thư viện nền tảng và thay vào đó phải sử dụng thư viện Dịch vụ nhận dạng của Google mới hơn. Bạn có thể chọn bất kỳ giá trị nào, nhưng nên chọn tên mô tả như tên sản phẩm hoặc tên trình bổ trợ để dễ dàng nhận dạng. Ví dụ: plugin_name: 'YOUR_STRING_HERE'

Xác thực

GoogleAuth là một lớp singleton cung cấp các phương thức cho phép người dùng đăng nhập bằng Tài khoản Google, nhận trạng thái đăng nhập hiện tại của người dùng, nhận dữ liệu cụ thể từ hồ sơ Google của người dùng, yêu cầu các phạm vi bổ sung và đăng xuất khỏi tài khoản hiện tại.

gapi.auth2.getAuthInstance()

Trả về đối tượng GoogleAuth. Bạn phải khởi tạo đối tượng GoogleAuth bằng gapi.auth2.init() trước khi gọi phương thức này.

Giá trị trả về
gapi.auth2.GoogleAuth Đối tượng gapi.auth2.GoogleAuth. Sử dụng đối tượng này để gọi các phương thức của gapi.auth2.GoogleAuth.

GoogleAuth.isSignedIn.get()

Trả về thông tin người dùng hiện tại có đăng nhập hay không.

Giá trị trả về
Boolean true nếu người dùng đã đăng nhập hoặc false nếu người dùng đã đăng xuất hoặc đối tượng GoogleAuth chưa được khởi chạy.

GoogleAuth.isSignedIn.listen(listener)

Theo dõi các thay đổi về trạng thái đăng nhập của người dùng hiện tại.

Đối số
listener Hàm nhận giá trị boolean. listen() truyền true đến hàm này khi người dùng đăng nhập và false khi người dùng đăng xuất.

GoogleAuth.signIn()

Đăng nhập người dùng bằng các tuỳ chọn được chỉ định cho gapi.auth2.init().

Giá trị trả về
Lời hứa Promise được thực hiện bằng thực thể GoogleUser khi người dùng xác thực và cấp thành công các phạm vi được yêu cầu, hoặc bị từ chối bằng một đối tượng chứa thuộc tính error nếu xảy ra lỗi. Hãy xem phần tiếp theo để biết mã lỗi.

Mã lỗi

Hãy xem GoogleAuth.signIn(options).

GoogleAuth.signIn(options)

Đăng nhập người dùng bằng các tuỳ chọn đã chỉ định.

Đối số
options Hoặc:
  • Một đối tượng gapi.auth2.SignInOptions chứa các cặp khoá-giá trị của tham số đăng nhập. Ví dụ:
    {
      scope: 'profile email'
    }
  • Một bản sao của gapi.auth2.SigninOptionsBuilder. Ví dụ:
    options = new gapi.auth2.SigninOptionsBuilder();
    options.setAppPackageName('com.example.app');
    options.setFetchBasicProfile(True);
    options.setPrompt('select_account');
    options.setScope('profile').setScope('email');
Giá trị trả về
Lời hứa Promise được thực hiện bằng thực thể GoogleUser khi người dùng xác thực và cấp thành công các phạm vi được yêu cầu, hoặc bị từ chối bằng một đối tượng chứa thuộc tính error nếu xảy ra lỗi (xem mã lỗi bên dưới).

Mã lỗi

popup_closed_by_user
Người dùng đã đóng cửa sổ bật lên trước khi hoàn tất quy trình đăng nhập.
access_denied
Người dùng từ chối cấp quyền cho các phạm vi bắt buộc.
immediate_failed
Không thể tự động chọn người dùng mà không nhắc người dùng thực hiện quy trình đồng ý. Lỗi xảy ra khi sử dụng signIn với tuỳ chọn prompt: 'none'. Bạn không bắt buộc phải sử dụng tuỳ chọn này vì gapi.auth2.init sẽ tự động đăng nhập người dùng nếu người dùng đã đăng nhập trong một phiên trước đó.

gapi.auth2.SignInOptions

Giao diện đại diện cho các tham số cấu hình khác nhau cho phương thức GoogleAuth.signIn(options).

Tham số
prompt string Buộc một chế độ cụ thể cho luồng đồng ý. Không bắt buộc.
Các giá trị có thể sử dụng là:
  • consent
    Máy chủ uỷ quyền nhắc người dùng đồng ý trước khi trả về thông tin cho ứng dụng.
  • select_account
    Máy chủ uỷ quyền nhắc người dùng chọn một Tài khoản Google. Điều này cho phép người dùng có nhiều tài khoản chọn trong số nhiều tài khoản mà họ có thể có phiên hiện tại.
  • none (không nên dùng)
    Máy chủ uỷ quyền sẽ không hiển thị bất kỳ màn hình xác thực hoặc màn hình đồng ý nào của người dùng; máy chủ này sẽ trả về lỗi nếu người dùng chưa được xác thực và chưa đồng ý với các phạm vi được yêu cầu.
    gapi.auth2.init sẽ tự động đăng nhập người dùng vào ứng dụng nếu trước đó đã đăng nhập, nên lệnh gọi signIn({prompt: 'none'}) thường sẽ không thành công.
scope string Phạm vi yêu cầu, dưới dạng chuỗi phân tách bằng dấu cách, trên các phạm vi được xác định trong tham số gapi.auth2.init. Không bắt buộc nếu bạn không đặt fetch_basic_profile thành sai.
ux_mode string Chế độ trải nghiệm người dùng để sử dụng cho quy trình đăng nhập. Theo mặc định, thao tác này sẽ mở quy trình đồng ý trong một cửa sổ bật lên. Các giá trị hợp lệ là popupredirect.
redirect_uri string Nếu sử dụng ux_mode='redirect', tham số này cho phép bạn ghi đè redirect_uri mặc định sẽ được sử dụng ở cuối luồng đồng ý. redirect_uri mặc định là URL hiện tại đã loại bỏ các tham số truy vấn và mảnh băm.

GoogleAuth.signOut()

Đăng xuất tài khoản hiện tại khỏi ứng dụng.

Giá trị trả về
Lời hứa Promise được thực hiện khi người dùng đã đăng xuất.

GoogleAuth.disconnect()

Thu hồi tất cả các phạm vi mà người dùng đã cấp.

GoogleAuth.grantOfflineAccess(options)

Yêu cầu người dùng cho phép truy cập vào các phạm vi đã chỉ định khi không có mạng.

Đối số
options Một đối tượng gapi.auth2.OfflineAccessOptions chứa các cặp khoá-giá trị của tham số. Ví dụ:
{
  scope: 'profile email'
}
Giá trị trả về
Lời hứa Promise được thực hiện khi người dùng cấp các phạm vi được yêu cầu, chuyển một đối tượng chứa mã uỷ quyền đến trình xử lý thực hiện của Promise. Ví dụ:
auth2.grantOfflineAccess().then(function(resp) {
  var auth_code = resp.code;
});

Mã lỗi

popup_closed_by_user
Người dùng đã đóng cửa sổ bật lên trước khi hoàn tất quy trình yêu cầu đồng ý.
access_denied
Người dùng từ chối cấp quyền cho các phạm vi bắt buộc.
immediate_failed
Không thể tự động chọn người dùng mà không nhắc người dùng thực hiện quy trình đồng ý. Lỗi xảy ra khi sử dụng signIn với tuỳ chọn prompt: 'none'. Bạn không bắt buộc phải sử dụng tuỳ chọn này vì gapi.auth2.init sẽ tự động đăng nhập người dùng nếu người dùng đã đăng nhập trong một phiên trước đó.

gapi.auth2.OfflineAccessOptions

Giao diện đại diện cho các tham số cấu hình khác nhau cho phương thức GoogleAuth.grantOfflineAccess(options).

Tham số
prompt string Buộc một chế độ cụ thể cho luồng đồng ý. Không bắt buộc.
Các giá trị có thể sử dụng là:
  • consent
    Máy chủ uỷ quyền nhắc người dùng đồng ý trước khi trả về thông tin cho ứng dụng.
  • select_account
    Máy chủ uỷ quyền nhắc người dùng chọn một Tài khoản Google. Điều này cho phép người dùng có nhiều tài khoản chọn trong số nhiều tài khoản mà họ có thể có phiên hiện tại.
scope string Phạm vi yêu cầu, dưới dạng chuỗi phân tách bằng dấu cách, trên các phạm vi được xác định trong tham số gapi.auth2.init. Không bắt buộc nếu bạn không đặt fetch_basic_profile thành sai.

GoogleAuth.attachClickHandler(container, options, onsuccess, onfailure)

Đính kèm quy trình đăng nhập vào trình xử lý lượt nhấp của vùng chứa đã chỉ định.

Đối số
container Mã nhận dạng hoặc tham chiếu đến phần tử div để đính kèm trình xử lý lượt nhấp.
options Một đối tượng chứa các cặp khoá-giá trị của tham số. Xem GoogleAuth.signIn().
onsuccess Hàm cần gọi sau khi hoàn tất quy trình đăng nhập.
onfailure Hàm cần gọi nếu không đăng nhập được.

Người dùng

Đối tượng GoogleUser đại diện cho một tài khoản người dùng. Các đối tượng GoogleUser thường được lấy bằng cách gọi GoogleAuth.currentUser.get().

GoogleAuth.currentUser.get()

Trả về một đối tượng GoogleUser đại diện cho người dùng hiện tại. Lưu ý rằng trong một thực thể GoogleAuth mới được khởi tạo, người dùng hiện tại chưa được đặt. Sử dụng phương thức currentUser.listen() hoặc GoogleAuth.then() để lấy một thực thể GoogleAuth đã khởi chạy.

Giá trị trả về
GoogleUser Người dùng hiện tại

GoogleAuth.currentUser.listen(listener)

Theo dõi các thay đổi trong currentUser.

Đối số
listener Hàm nhận tham số GoogleUser. listen truyền hàm này một thực thể GoogleUser cho mỗi thay đổi sửa đổi currentUser.

GoogleUser.getId()

Lấy chuỗi mã nhận dạng duy nhất của người dùng.

Giá trị trả về
Chuỗi Mã nhận dạng duy nhất của người dùng

GoogleUser.isSignedIn()

Trả về true nếu người dùng đã đăng nhập.

Giá trị trả về
Boolean Đúng nếu người dùng đã đăng nhập

GoogleUser.getHostedDomain()

Lấy miền G Suite của người dùng nếu người dùng đăng nhập bằng tài khoản G Suite.

Giá trị trả về
Chuỗi Miền G Suite của người dùng

GoogleUser.getGrantedScopes()

Lấy các phạm vi mà người dùng đã cấp dưới dạng một chuỗi được phân tách bằng dấu cách.

Giá trị trả về
Chuỗi Phạm vi mà người dùng cấp

GoogleUser.getBasicProfile()

Nhận thông tin cơ bản về hồ sơ của người dùng.

Giá trị trả về
gapi.auth2.BasicProfile Bạn có thể truy xuất các thuộc tính của gapi.auth2.BasicProfile bằng các phương thức sau:
  • BasicProfile.getId()
  • BasicProfile.getName()
  • BasicProfile.getGivenName()
  • BasicProfile.getFamilyName()
  • BasicProfile.getImageUrl()
  • BasicProfile.getEmail()

GoogleUser.getAuthResponse(includeAuthorizationData)

Lấy đối tượng phản hồi từ phiên xác thực của người dùng.

Đối số
includeAuthorizationData Không bắt buộc: Một giá trị boolean chỉ định xem có luôn trả về mã thông báo truy cập và phạm vi hay không. Theo mặc định, mã thông báo truy cập và phạm vi được yêu cầu sẽ không được trả về khi fetch_basic_profile là true (giá trị mặc định) và không có phạm vi bổ sung nào được yêu cầu.
Giá trị trả về
gapi.auth2.AuthResponse Một đối tượng gapi.auth2.AuthResponse.

GoogleUser.reloadAuthResponse()

Buộc làm mới mã thông báo truy cập, sau đó trả về một Lời hứa cho AuthResponse mới.

Giá trị trả về
Promise Promise được thực hiện bằng gapi.auth2.AuthResponse đã tải lại khi tải lại mã thông báo OAuth.

gapi.auth2.AuthResponse

Phản hồi được trả về khi gọi các phương thức GoogleUser.getAuthResponse(includeAuthorizationData) hoặc GoogleUser.reloadAuthResponse().

Thuộc tính
access_token string Mã truy cập đã được cấp.
id_token string Mã thông báo nhận dạng đã được cấp.
scope string Phạm vi được cấp trong Mã truy cập.
expires_in number Số giây cho đến khi Mã truy cập hết hạn.
first_issued_at number Dấu thời gian khi người dùng cấp các phạm vi được yêu cầu lần đầu tiên.
expires_at number Dấu thời gian mà Mã truy cập sẽ hết hạn.

GoogleUser.hasGrantedScopes(scopes)

Trả về true nếu người dùng đã cấp các phạm vi đã chỉ định.

Đối số
scopes Chuỗi các phạm vi được phân tách bằng dấu cách.
Giá trị trả về
Boolean Đúng nếu các phạm vi đã được cấp

GoogleUser.grant(options)

Yêu cầu người dùng cấp thêm phạm vi.

Hãy xem GoogleAuth.signIn() để biết danh sách tham số và mã lỗi.

GoogleUser.grantOfflineAccess(options)

Yêu cầu người dùng cho phép truy cập vào các phạm vi đã chỉ định khi không có mạng.

Đối số
options Đối tượng gapi.auth2.OfflineAccessOptions chứa các cặp khoá-giá trị của tham số. Ví dụ:
{
  scope: 'profile email'
}

GoogleUser.disconnect()

Thu hồi tất cả các phạm vi mà người dùng đã cấp cho ứng dụng.

Phần tử trên giao diện người dùng

gapi.signin2.render(id, options)

Hiển thị nút đăng nhập trong phần tử có mã nhận dạng đã cho, sử dụng chế độ cài đặt do đối tượng options chỉ định.

Đối số
id Mã nhận dạng của phần tử để hiển thị nút đăng nhập.
options Một đối tượng chứa các chế độ cài đặt cần sử dụng để hiển thị nút. Ví dụ:
{
  scope: 'email',
  width: 200,
  height: 50,
  longtitle: true,
  theme: 'dark',
  onsuccess: handleSuccess,
  onfailure: handleFailure
}
Bạn có thể chỉ định các tuỳ chọn sau:
Tham số
phạm vi Phạm vi yêu cầu khi người dùng đăng nhập (mặc định: profile).
chiều rộng Chiều rộng của nút tính bằng pixel (mặc định: 120).
độ cao Chiều cao của nút tính bằng pixel (mặc định: 36).
longtitle Hiển thị các nhãn dài như "Đăng nhập bằng Google" thay vì "Đăng nhập" (mặc định: false). Khi sử dụng tiêu đề dài, bạn nên tăng chiều rộng của nút so với chiều rộng mặc định.
chủ đề Giao diện màu của nút: light hoặc dark (mặc định: light).
onsuccess Hàm gọi lại để gọi khi người dùng đăng nhập thành công. Hàm này phải nhận một đối số: một thực thể của gapi.auth2.GoogleUser (mặc định: không có).
onfailure Hàm gọi lại để gọi khi đăng nhập không thành công. Hàm này không nhận đối số (mặc định: không có).

Nâng cao

gapi.auth2.authorize(params, callback)

Thực hiện một lần uỷ quyền OAuth 2.0. Tuỳ thuộc vào các thông số được sử dụng, thao tác này sẽ mở một cửa sổ bật lên cho luồng đăng nhập bằng Google hoặc cố gắng tải phản hồi được yêu cầu mà không cần người dùng tương tác.

Sau đây là một số trường hợp sử dụng mà phương thức này hữu ích:

  • Ứng dụng của bạn chỉ cần yêu cầu một điểm cuối API của Google một lần, chẳng hạn như để tải các video YouTube mà người dùng yêu thích trong lần đầu tiên họ đăng nhập.
  • Ứng dụng của bạn có cơ sở hạ tầng quản lý phiên riêng và chỉ yêu cầu Mã thông báo nhận dạng một lần để xác định người dùng trong phần phụ trợ.
  • Một số mã khách hàng được sử dụng trong cùng một trang.
Đối số
params Một đối tượng chứa các cặp khoá-giá trị của dữ liệu cấu hình. Hãy xem gapi.auth2.AuthorizeConfig để biết các thuộc tính có thể định cấu hình. Ví dụ:
{
  client_id: 'CLIENT_ID.apps.googleusercontent.com',
  scope: 'email profile openid',
  response_type: 'id_token permission'
}
callback Một hàm được gọi bằng đối tượng gapi.auth2.AuthorizeResponse sau khi yêu cầu hoàn tất (thành công hoặc không thành công).

Ví dụ:

gapi.auth2.authorize({
  client_id: 'CLIENT_ID.apps.googleusercontent.com',
  scope: 'email profile openid',
  response_type: 'id_token permission'
}, function(response) {
  if (response.error) {
    // An error happened!
    return;
  }
  // The user authorized the application for the scopes requested.
  var accessToken = response.access_token;
  var idToken = response.id_token;
  // You can also now use gapi.client to perform authenticated requests.
});

Mã lỗi

idpiframe_initialization_failed
Không khởi chạy được iframe bắt buộc từ Google, ví dụ: do môi trường không được hỗ trợ. Thuộc tính details sẽ cung cấp thêm thông tin về lỗi đã xảy ra.
popup_closed_by_user
Người dùng đã đóng cửa sổ bật lên trước khi hoàn tất quy trình đăng nhập.
access_denied
Người dùng từ chối cấp quyền cho các phạm vi bắt buộc.
immediate_failed
Không thể tự động chọn người dùng mà không nhắc người dùng thực hiện quy trình đồng ý. Lỗi xảy ra khi sử dụng signIn với tuỳ chọn prompt: 'none'.

gapi.auth2.AuthorizeConfig

Giao diện đại diện cho các tham số cấu hình khác nhau cho phương thức gapi.auth2.authorize.

Thuộc tính
client_id string Bắt buộc. Mã ứng dụng khách của ứng dụng, được tìm thấy và tạo trong Bảng điều khiển API của Google.
scope string Bắt buộc. Phạm vi yêu cầu, dưới dạng một chuỗi được phân tách bằng dấu cách.
response_type string Danh sách loại phản hồi được phân tách bằng dấu cách. Giá trị mặc định là 'permission'. Các giá trị có thể là:
  • id_token, để truy xuất Mã thông báo nhận dạng
  • permission (hoặc token) để truy xuất Mã truy cập
  • code, để truy xuất Mã uỷ quyền
prompt string Buộc một chế độ cụ thể cho luồng đồng ý. Các giá trị có thể sử dụng là:
  • consent
    Máy chủ uỷ quyền nhắc người dùng đồng ý trước khi trả về thông tin cho ứng dụng.
  • select_account
    Máy chủ uỷ quyền nhắc người dùng chọn một Tài khoản Google. Điều này cho phép người dùng có nhiều tài khoản chọn trong số nhiều tài khoản mà họ có thể có phiên hiện tại.
  • none
    Máy chủ uỷ quyền sẽ không hiển thị bất kỳ màn hình xác thực hoặc màn hình đồng ý nào của người dùng; máy chủ này sẽ trả về lỗi nếu người dùng chưa được xác thực và chưa đồng ý với các phạm vi được yêu cầu.
    Nếu bạn yêu cầu code làm loại phản hồi, thì mã được trả về sẽ chỉ có thể hoán đổi cho access_token, chứ không phải refresh_token.
cookie_policy string Các miền cần tạo cookie đăng nhập. URI, single_host_origin hoặc none. Mặc định là single_host_origin nếu bạn không chỉ định.
hosted_domain string Miền G Suite mà người dùng phải thuộc về để đăng nhập. Miền này dễ bị khách hàng sửa đổi, vì vậy, hãy nhớ xác minh tài sản miền được lưu trữ của người dùng được trả về.
login_hint string Email hoặc Mã nhận dạng người dùng của người dùng để chọn trước trong quy trình đăng nhập. Người dùng có thể dễ dàng chỉnh sửa thông tin này, trừ phi bạn sử dụng prompt: "none".
include_granted_scopes boolean Liệu có yêu cầu Mã truy cập bao gồm tất cả các phạm vi mà người dùng đã cấp cho ứng dụng trước đó hay chỉ các phạm vi được yêu cầu trong lệnh gọi hiện tại. Giá trị mặc định là true.
enable_granular_consent boolean Không bắt buộc. Liệu có bật quyền chi tiết hay không. Nếu bạn đặt thành false, các quyền Tài khoản Google chi tiết hơn sẽ bị vô hiệu hoá đối với mã ứng dụng OAuth được tạo trước năm 2019. Không ảnh hưởng đến Mã ứng dụng khách OAuth được tạo trong hoặc sau năm 2019, vì các quyền chi tiết hơn luôn được bật cho các mã này.
plugin_name string Không bắt buộc. Nếu được đặt, Mã ứng dụng được tạo trước ngày 29 tháng 7 năm 2022 có thể sử dụng Thư viện nền tảng Google. Theo mặc định, các mã ứng dụng khách mới tạo sẽ bị chặn sử dụng Thư viện nền tảng và thay vào đó phải sử dụng thư viện Dịch vụ nhận dạng của Google mới hơn. Bạn có thể chọn bất kỳ giá trị nào, nhưng nên chọn một tên mô tả như tên sản phẩm hoặc tên trình bổ trợ để dễ dàng xác định. Ví dụ: plugin_name: 'YOUR_STRING_HERE'

gapi.auth2.AuthorizeResponse

Phản hồi được trả về lệnh gọi lại của phương thức gapi.auth2.authorize.

Thuộc tính
access_token string Mã truy cập đã được cấp. Chỉ xuất hiện nếu permission hoặc token được chỉ định trong response_type.
id_token string Mã thông báo nhận dạng đã được cấp. Chỉ xuất hiện nếu id_token được chỉ định trong response_type.
code string Mã uỷ quyền đã được cấp. Chỉ xuất hiện nếu code được chỉ định trong response_type.
scope string Phạm vi được cấp trong Mã truy cập. Chỉ xuất hiện nếu permission hoặc token được chỉ định trong response_type.
expires_in number Số giây cho đến khi Mã truy cập hết hạn. Chỉ xuất hiện nếu permission hoặc token được chỉ định trong response_type.
first_issued_at number Dấu thời gian khi người dùng cấp các phạm vi được yêu cầu lần đầu tiên. Chỉ xuất hiện nếu bạn chỉ định permission hoặc token trong response_type.
expires_at number Dấu thời gian mà Mã truy cập sẽ hết hạn. Chỉ xuất hiện nếu permission hoặc token được chỉ định trong response_type.
error string Khi yêu cầu không thành công, giá trị này sẽ chứa mã lỗi.
error_subtype string Khi yêu cầu không thành công, thông tin này có thể chứa thêm thông tin về mã lỗi cũng được trả về.