Tài liệu tham khảo này mô tả các thuộc tính và phương thức của ứng dụng JavaScript mà bạn sẽ dùng để triển khai tính năng Đăng nhập bằng Google trong các ứng dụng web của mình.
Nếu bạn gặp bất kỳ vấn đề nào khi sử dụng thư viện, vui lòng báo cáo vấn đề đó với kho lưu trữ GitHub của chúng tôi.
Thiết lập tính năng 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 tạo đối tượng GoogleAuth
, bạn định cấu hình đối tượng này 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. 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' } |
Trả bóng | |
---|---|
gapi.auth2.GoogleAuth |
Đối tượng gapi.auth2.GoogleAuth . Sử dụng phương thức then() để nhận Lời hứa hẹn đã được phân giải khi đối tượng gapi.auth2.GoogleAuth khởi chạy xong.
|
GoogleAuth.then(onInit, onError)
Gọi hàm onInit khi đối tượng GoogleAuth
được khởi động hoàn toàn. Nếu xảy ra lỗi trong khi khởi chạy (tình trạng này có thể xảy ra trong các trình duyệt cũ không được hỗ trợ), hàm onError sẽ được gọi.
Đối số | |
---|---|
onInit |
Hàm này được gọi bằng đối tượng GoogleAuth khi đối tượng đó được khởi tạo hoàn toàn.
|
onError |
Hàm được gọi bằng một đối tượng có chứa thuộc tính error ,
nếu GoogleAuth không khởi chạy được.
|
Trả bóng | |
---|---|
Hứa hẹn | Promise được thực hiện khi hàm onInit hoàn tất hoặc bị từ chối nếu xảy ra lỗi khởi động. Phương thức này sẽ phân giải bằng giá trị trả về từ hàm onInit, nếu có. |
Mã lỗi
idpiframe_initialization_failed
-
Bạn không thể khởi chạy iframe bắt buộc từ Google, chẳng hạn như 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 đã nêu.
gapi.auth2.ClientConfig
Giao diện biểu thị các tham số cấu hình của phương thức gapi.auth2.init
.
Các tham số | ||
---|---|---|
client_id |
string |
Bắt buộc. Mã ứng dụng khách của ứng dụng này, được tìm thấy và tạo trong Google Developers Console. |
cookie_policy |
string |
Các miền để tạo cookie đăng nhập. URI, single_host_origin hoặc none . Giá trị mặc định là single_host_origin nếu không được chỉ định. |
scope |
string |
Các phạm vi cần 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 "profile", "email" và "openid" vào các phạm vi được yêu cầu. Đúng nếu không được chỉ định. |
hosted_domain |
string |
Miền G Suite mà người dùng phải thuộc để đăng nhập. Khách hàng có thể sửa đổi trường hợp này, 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ề. Hãy sử dụng GoogleUser.getHostedDomain() trên ứng dụng và xác nhận quyền sở hữu hd trong Mã thông báo mã nhận dạng trên máy chủ để xác minh miền đúng như bạn mong đợi.
|
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à popup và redirect . |
redirect_uri |
string |
Nếu sử dụng ux_mode='redirect' , thông số này sẽ cho phép bạn ghi đè
redirect_uri mặc định sẽ được sử dụng ở cuối quy trình lấy sự đồng ý. redirect_uri mặc định là URL hiện tại đã bị xoá các tham số truy vấn và mảnh băm.
|
plugin_name |
string |
Không bắt buộc. Nếu bạn đặt giá trị này, thì các mã ứng dụng khách 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, các Mã ứng dụng khách mới tạo hiện 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ụ Google Identity mới hơn. Bạn có thể chọn giá trị bất kỳ. Bạn nên chọn tên mô tả (chẳng hạn như tên sản phẩm hoặc trình bổ trợ) để dễ nhận biết.
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, biết 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 thêm phạm vi 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.
Trả bóng | |
---|---|
gapi.auth2.GoogleAuth |
Đối tượng gapi.auth2.GoogleAuth . Hãy 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ề việc người dùng hiện tại đã đăng nhập hay chưa.
Trả bóng | |
---|---|
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 đối với 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 cho người dùng bằng các tuỳ chọn được chỉ định cho gapi.auth2.init()
.
Trả bóng | |
---|---|
Hứa hẹn | Promise được thực hiện bằng thực thể GoogleUser khi người dùng xác thực và cấp phạm vi được yêu cầu thành công 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 dưới đây). |
Mã lỗi
Vui lòng xem GoogleAuth.signIn(options)
.
GoogleAuth.signIn(options)
Đăng nhập cho người dùng bằng các tuỳ chọn được chỉ định.
Đối số | |
---|---|
options |
Hoặc:
|
Trả bóng | |
---|---|
Hứa hẹn | Promise được thực hiện bằng thực thể GoogleUser khi người dùng xác thực và cấp phạm vi được yêu cầu thành công 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 dưới đây). |
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 đối với các phạm vi cần thiết.
immediate_failed
-
Không thể chọn tự động người dùng nào mà không nhắc quy trình đồng ý. Đã xảy ra lỗi khi sử dụng
signIn
với tuỳ chọnprompt: '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 trước đó đã đăng nhập trong phiên trước đó.
gapi.auth2.SignInOptions
Giao diện biểu thị các tham số cấu hình của phương thức GoogleAuth.signIn(options)
.
Các tham số | ||
---|---|---|
prompt |
string |
Buộc một chế độ cụ thể cho quy trình đồng ý. Không bắt buộc. Các giá trị có thể sử dụng là:
|
scope |
string |
Các phạm vi cần yêu cầu, dưới dạng một chuỗi được phân tách bằng dấu cách, ở đầu 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 false.
|
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à popup và redirect . |
redirect_uri |
string |
Nếu sử dụng ux_mode='redirect' , thông số này sẽ cho phép bạn ghi đè
redirect_uri mặc định sẽ được sử dụng ở cuối quy trình
đồng ý. redirect_uri mặc định là URL hiện tại đã bị xoá các tham số
truy vấn và mảnh băm.
|
GoogleAuth.signOut()
Đăng xuất khỏi tài khoản hiện tại khỏi ứng dụng.
Trả bóng | |
---|---|
Hứa hẹn | Promise được thực hiện khi người dùng đăng xuất. |
GoogleAuth.disconnect()
Thu hồi tất cả phạm vi mà người dùng đã cấp.
GoogleAuth.grantOfflineAccess(options)
Yêu cầu người dùng cấp quyền truy cập ngoại tuyến vào các phạm vi được chỉ định.
Đối số | |
---|---|
options |
Đối tượng gapi.auth2.OfflineAccessOptions chứa các cặp khoá-giá trị của các tham số. Ví dụ: { scope: 'profile email' } |
Trả bóng | |
---|---|
Hứa hẹn | Một 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ý phương thức 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 đồng ý.
access_denied
- Người dùng đã từ chối cấp quyền đối với các phạm vi cần thiết.
immediate_failed
-
Không thể chọn tự động người dùng nào mà không nhắc quy trình đồng ý. Đã xảy ra lỗi khi sử dụng
signIn
với tuỳ chọnprompt: '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 trước đó đã đăng nhập trong phiên trước đó.
gapi.auth2.OfflineAccessOptions
Giao diện biểu thị các tham số cấu hình của phương thức GoogleAuth.grantOfflineAccess(options)
.
Các tham số | ||
---|---|---|
prompt |
string |
Buộc một chế độ cụ thể cho quy trình đồng ý. Không bắt buộc. Các giá trị có thể sử dụng là:
|
scope |
string |
Các phạm vi cần yêu cầu, dưới dạng một chuỗi được phân tách bằng dấu cách, ở đầu 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 false.
|
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 được chỉ định.
Đối số | |
---|---|
container | Mã nhận dạng hoặc tham chiếu đến phần tử div cần đính kèm trình xử lý lượt nhấp. |
options | Một đối tượng chứa các cặp tham số khoá-giá trị. Xem GoogleAuth.signIn(). |
onsuccess | Hàm gọi sau khi hoàn tất quá trình đăng nhập. |
onfailure | Hàm gọi nếu không đăng nhập được. |
Số 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ề đối tượng GoogleUser
đại diện cho người dùng hiện tại. Xin lưu ý rằng trong phiên bản GoogleAuth
mới 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 động.
Trả bóng | |
---|---|
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 |
Một hàm nhận tham số GoogleUser .
listen chuyển cho hàm này một thực thể GoogleUser trên 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.
Trả bóng | |
---|---|
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.
Trả bóng | |
---|---|
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 họ đăng nhập bằng tài khoản G Suite.
Trả bóng | |
---|---|
Chuỗi | Miền G Suite của người dùng |
GoogleUser.getGrantedScopes()
Nhận 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.
Trả bóng | |
---|---|
Chuỗi | Các phạm vi do người dùng cấp |
GoogleUser.getBasicProfile()
Lấy thông tin hồ sơ cơ bản của người dùng.
Trả bóng | |
---|---|
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:
|
GoogleUser.getAuthResponse(includeAuthorizationData)
Nhận đối tượng phản hồi qua phiên xác thực của người dùng.
Đối số | |
---|---|
includeAuthorizationData | Không bắt buộc: Giá trị boolean chỉ định có luôn trả về mã truy cập và phạm vi hay không. Theo mặc định, mã truy cập và phạm vi yêu cầu sẽ không được trả về khi fetch_basic_profile là đúng (giá trị mặc định) và không có phạm vi bổ sung nào được yêu cầu. |
Trả bóng | |
---|---|
gapi.auth2.AuthResponse |
Đối tượng gapi.auth2.AuthResponse . |
GoogleUser.reloadAuthResponse()
Buộc làm mới mã truy cập, sau đó trả về một Promise cho AuthResponse mới.
Trả bóng | |
---|---|
Promise |
Promise được thực hiện bằng gapi.auth2.AuthResponse đã tải lại khi quá trình tải lại mã thông báo OAuth hoàn tất.
|
gapi.auth2.AuthResponse
Phản hồi được trả về khi gọi phương thức GoogleUser.getAuthResponse(includeAuthorizationData)
hoặc GoogleUser.reloadAuthResponse()
.
Thuộc tính | ||
---|---|---|
access_token |
string |
Đã cấp Mã thông báo Truy cập. |
id_token |
string |
Mã thông báo nhận dạng đã được cấp. |
scope |
string |
Các phạm vi đã 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 mà người dùng cấp phạm vi lần đầu tiên. |
expires_at |
number |
Dấu thời gian mà Mã thông báo truy cập sẽ hết hạn. |
GoogleUser.hasGrantedScopes(scopes)
Trả về giá trị true nếu người dùng đã cấp các phạm vi đã chỉ định.
Đối số | |
---|---|
scopes | Chuỗi phạm vi được phân tách bằng dấu cách. |
Trả bóng | |
---|---|
Boolean | Đúng nếu phạm vi đã được cấp |
GoogleUser.grant(options)
Yêu cầu thêm phạm vi cho người dùng.
Hãy xem GoogleAuth.signIn()
để biết danh sách các thông số và mã lỗi.
GoogleUser.grantOfflineAccess(options)
Yêu cầu người dùng cấp quyền truy cập ngoại tuyến vào các phạm vi được chỉ định.
Đối số | |
---|---|
options |
Đối tượng gapi.auth2.OfflineAccessOptions chứa các cặp khoá-giá trị của các tham số. Ví dụ: { scope: 'profile email' } |
GoogleUser.disconnect()
Thu hồi tất 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ã của phần tử hiển thị nút đăng nhập. | ||||||||||||||||
options |
Đối tượng chứa các chế độ cài đặt dùng để kết xuất 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:
|
Nâng cao
gapi.auth2.authorized(params, callback)
Thực hiện uỷ quyền OAuth 2.0 một lần. Tuỳ thuộc vào các tham số được sử dụng, thao tác này sẽ mở một cửa sổ bật lên cho quy trình đăng nhập bằng Google hoặc cố gắng tự tải phản hồi được yêu cầu mà không cần người dùng tương tác.
Một số trường hợp sử dụng mà phương thức này hữu ích bao gồm:
- Ứ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 video trên YouTube mà người dùng yêu thích vào 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 mã nhận dạng một lần để xác định người dùng trong phần phụ trợ.
- Một số mã ứng dụng khách đượ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 khác nhau 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 có lỗi).
|
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
-
Bạn không thể khởi chạy iframe bắt buộc từ Google, chẳng hạn như 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 đã nêu. 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 đối với các phạm vi cần thiết.
immediate_failed
-
Không thể chọn tự động người dùng nào mà không nhắc quy trình đồng ý. Đã xảy ra lỗi khi sử dụng
signIn
với tuỳ chọnprompt: 'none'
.
gapi.auth2.AuthorizeConfig
Giao diện biểu thị các tham số cấu hình của 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 này, được tìm thấy và tạo trong Google Developers Console. |
scope |
string |
Bắt buộc. Các phạm vi cần 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ể có là:
|
prompt |
string |
Buộc một chế độ cụ thể cho quy trình đồng ý. Các giá trị có thể sử dụng là:
|
cookie_policy |
string |
Các miền để tạo cookie đăng nhập. URI, single_host_origin hoặc none . Giá trị mặc định là single_host_origin nếu không được chỉ định.
|
hosted_domain |
string |
Miền G Suite mà người dùng phải thuộc để đăng nhập. Khách hàng có thể dễ dàng sửa đổi trường hợp này, nên 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 mà bạn chọn trước trong quy trình đăng nhập. Người dùng có thể dễ dàng sửa đổi trường này, trừ phi họ sử dụng prompt: "none" .
|
include_granted_scopes |
boolean |
Yêu cầu một Mã truy cập bao gồm tất cả phạm vi mà người dùng đã cấp trước đó cho ứng dụng hay chỉ các phạm vi đã yêu cầu trong lệnh gọi hiện tại. Giá trị mặc định là true .
|
plugin_name |
string |
Không bắt buộc. Nếu được đặt, các mã ứng dụng khách được tạo trước ngày 29 tháng 7 năm 2022 có thể sử dụng
Thư viện Google Platform. 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 mà 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 giá trị bất kỳ. Bạn nên chọn tên mang tính mô tả (chẳng hạn như tên sản phẩm hoặc trình bổ trợ) để dễ dàng nhận dạng.
Ví dụ: plugin_name: 'YOUR_STRING_HERE'
|
gapi.auth2.AuthorizeResponse
Phản hồi trả về lệnh gọi lại của phương thức gapi.auth2.authorize
.
Thuộc tính | ||
---|---|---|
access_token |
string |
Đã cấp Mã thông báo Truy cập. Chỉ hiển thị 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ỉ hiển thị nếu id_token được chỉ định trong response_type .
|
code |
string |
Mã uỷ quyền đã được cấp. Chỉ hiển thị nếu code được chỉ định trong response_type .
|
scope |
string |
Các phạm vi đã cấp trong Mã truy cập. Chỉ hiển thị 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ỉ hiển thị nếu permission hoặc token được chỉ định trong response_type .
|
first_issued_at |
number |
Dấu thời gian mà người dùng cấp phạm vi lần đầu tiên. Chỉ hiển thị nếu permission hoặc token được chỉ định trong response_type .
|
expires_at |
number |
Dấu thời gian mà Mã thông báo truy cập sẽ hết hạn. Chỉ hiển thị 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, tệp này sẽ chứa mã lỗi. |
error_subtype |
string |
Khi yêu cầu không thành công, hàng này có thể chứa thông tin bổ sung liên quan đến mã lỗi cũng được trả về. |