ข้อมูลอ้างอิงนี้จะอธิบายเมธอดและแอตทริบิวต์ของไคลเอ็นต์ JavaScript ที่คุณจะใช้เพื่อลงชื่อเข้าใช้ Google ในเว็บแอปพลิเคชัน
หากพบปัญหาใดๆ ในการใช้ไลบรารี โปรดรายงานไปยังที่เก็บของ GitHub
การตั้งค่าการตรวจสอบสิทธิ์
โหลดไลบรารีแพลตฟอร์ม Google APIs เพื่อสร้างออบเจ็กต์ gapi
<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>
หลังจากโหลดคลังแพลตฟอร์มแล้ว ให้โหลดไลบรารี auth2
function init() {
gapi.load('auth2', function() {
/* Ready. Make a call to gapi.auth2.init or some other API */
});
}
gapi.auth2.init(params)
เริ่มต้นออบเจ็กต์ GoogleAuth
คุณต้องเรียกใช้เมธอดนี้ก่อนเรียกใช้เมธอดของ gapi.auth2.GoogleAuth
เมื่อเริ่มต้นออบเจ็กต์ GoogleAuth
เริ่มต้น คุณจะต้องกําหนดค่าออบเจ็กต์ด้วยรหัสไคลเอ็นต์ OAuth 2.0 และตัวเลือกอื่นๆ ที่ต้องการระบุ จากนั้นหากผู้ใช้ลงชื่อเข้าใช้แล้ว ออบเจ็กต์ GoogleAuth
จะกู้คืนสถานะการลงชื่อเข้าใช้ของผู้ใช้จากเซสชันก่อนหน้า
อาร์กิวเมนต์ | |
---|---|
params |
ออบเจ็กต์ที่มีคู่คีย์-ค่าของข้อมูลการกําหนดค่าไคลเอ็นต์ ดู gapi.auth2.ClientConfig สําหรับพร็อพเพอร์ตี้ต่างๆ ที่กําหนดค่าได้ ดังตัวอย่างต่อไปนี้
{ client_id: 'CLIENT_ID.apps.googleusercontent.com' } |
การส่งคืน | |
---|---|
gapi.auth2.GoogleAuth |
ออบเจ็กต์ gapi.auth2.GoogleAuth ใช้เมธอด then() เพื่อรับ Promise ที่ได้รับการแก้ไขเมื่อออบเจ็กต์ gapi.auth2.GoogleAuth เริ่มต้นเสร็จแล้ว
|
GoogleAuth.then(onInit, onError)
เรียกใช้ฟังก์ชัน onInit เมื่อเริ่มใช้งานออบเจ็กต์ GoogleAuth
โดยสมบูรณ์ หากเกิดข้อผิดพลาดขณะเริ่มต้น (เกิดขึ้นได้ในเบราว์เซอร์เก่าที่ไม่รองรับ) ระบบจะเรียกใช้ฟังก์ชัน onError แทน
อาร์กิวเมนต์ | |
---|---|
onInit |
ฟังก์ชันที่เรียกด้วยออบเจ็กต์ GoogleAuth เมื่อเริ่มต้นโดยสมบูรณ์
|
onError |
ฟังก์ชันการเรียกด้วยออบเจ็กต์ที่มีพร็อพเพอร์ตี้ error หาก GoogleAuth เริ่มต้นไม่สําเร็จ
|
การส่งคืน | |
---|---|
แหวนแทนคําสัญญา | Promise ที่ดําเนินการจนเสร็จสมบูรณ์เมื่อฟังก์ชัน onInit ทํางานเสร็จสิ้น หรือถูกปฏิเสธหากเกิดข้อผิดพลาดในการเริ่มต้น ซึ่งจะแสดงผลด้วยค่าที่แสดงผลจากฟังก์ชัน onInit หากมี |
รหัสข้อผิดพลาด
idpiframe_initialization_failed
-
เริ่มต้นใช้งาน iframe ที่จําเป็นจาก Google ไม่สําเร็จเนื่องจากสภาพแวดล้อมที่ไม่รองรับ พร็อพเพอร์ตี้
details
จะให้ข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดที่สร้างขึ้น
gapi.auth2.ClientConfig
อินเทอร์เฟซที่แสดงพารามิเตอร์การกําหนดค่าแบบต่างๆ สําหรับเมธอด gapi.auth2.init
พารามิเตอร์ | ||
---|---|---|
client_id |
string |
ต้องระบุ รหัสไคลเอ็นต์ของแอปที่ค้นพบและสร้างใน Google Developers Console |
cookie_policy |
string |
โดเมนที่จะใช้สร้างคุกกี้การลงชื่อเข้าใช้ อาจเป็น URI, single_host_origin หรือ none ค่าเริ่มต้นจะเป็น single_host_origin หากไม่ได้ระบุ |
scope |
string |
ขอบเขตที่ขอเป็นสตริงที่คั่นด้วยช่องว่าง ไม่บังคับหากไม่ได้ตั้งค่า fetch_basic_profile เป็น "เท็จ" |
fetch_basic_profile |
boolean |
ดึงข้อมูลโปรไฟล์พื้นฐานของผู้ใช้เมื่อลงชื่อเข้าใช้ เพิ่ม "โปรไฟล์" "อีเมล" และ "openid" ลงในขอบเขตที่ขอ เป็นจริงหากไม่ได้ระบุ |
hosted_domain |
string |
โดเมน G Suite ที่ผู้ใช้ต้องอยู่ในการลงชื่อเข้าใช้ เนื่องจากไคลเอ็นต์จะมีโอกาสแก้ไขได้ ดังนั้นโปรดยืนยันพร็อพเพอร์ตี้โดเมนที่โฮสต์ของผู้ใช้ที่กลับมา ใช้ GoogleUser.getHostedDomain() ในไคลเอ็นต์และการอ้างสิทธิ์ hd ในโทเค็นรหัสบนเซิร์ฟเวอร์เพื่อยืนยันโดเมนคือสิ่งที่คุณต้องการ
|
ux_mode |
string |
โหมด UX ที่ใช้สําหรับขั้นตอนการลงชื่อเข้าใช้ โดยค่าเริ่มต้น แล้วระบบจะเปิดขั้นตอนคํายินยอมในป๊อปอัป ค่าที่ใช้ได้คือ popup และ redirect |
redirect_uri |
string |
หากใช้ ux_mode='redirect' พารามิเตอร์นี้ช่วยให้คุณลบล้าง redirect_uri เริ่มต้นซึ่งจะใช้เมื่อสิ้นสุดขั้นตอนคํายินยอม redirect_uri เริ่มต้นคือ URL ปัจจุบันที่ตัดออกจากพารามิเตอร์การค้นหาและส่วนย่อยของแฮช
|
plugin_name |
string |
ไม่บังคับ หากตั้งค่านี้ รหัสลูกค้าใหม่ที่สร้างขึ้นก่อนวันที่ 29 กรกฎาคม 2022 จะใช้ไลบรารี Google Platform เวอร์ชันเก่าได้
โดยค่าเริ่มต้น ระบบจะบล็อกรหัสไคลเอ็นต์ที่สร้างขึ้นใหม่ไม่ให้ใช้ไลบรารีแพลตฟอร์มและต้องใช้ไลบรารีบริการข้อมูลประจําตัวของ Google ใหม่แทน คุณอาจเลือกค่าใดก็ได้ ชื่อที่สื่อความหมาย เช่น ชื่อผลิตภัณฑ์หรือปลั๊กอิน ขอแนะนําให้ระบุเพื่อให้ระบุได้ง่าย
เช่น plugin_name: 'YOUR_STRING_HERE'
|
การตรวจสอบสิทธิ์
GoogleAuth
คือชั้นเรียนระดับเดียวที่มีวิธีการอนุญาตให้ผู้ใช้ลงชื่อเข้าใช้ด้วยบัญชี Google ดูสถานะการลงชื่อเข้าใช้ปัจจุบันของผู้ใช้ รับข้อมูลที่ต้องการจากโปรไฟล์ Google ของผู้ใช้ ขอขอบเขตเพิ่มเติม และออกจากระบบ บัญชีปัจจุบัน
gapi.auth2.getAuthInstance()
แสดงออบเจ็กต์ GoogleAuth
คุณต้องเริ่มต้นออบเจ็กต์ GoogleAuth
ด้วย gapi.auth2.init()
ก่อนที่จะเรียกใช้เมธอดนี้
การส่งคืน | |
---|---|
gapi.auth2.GoogleAuth |
ออบเจ็กต์ gapi.auth2.GoogleAuth ใช้ออบเจ็กต์นี้เพื่อเรียกใช้เมธอดของ gapi.auth2.GoogleAuth
|
GoogleAuth.isSignedIn.get()
แสดงผลว่าผู้ใช้ปัจจุบันลงชื่อเข้าใช้อยู่หรือไม่
การส่งคืน | |
---|---|
บูลีน |
true หากผู้ใช้ลงชื่อเข้าใช้ หรือ false หากผู้ใช้ออกจากระบบหรือไม่ได้เริ่มใช้งานออบเจ็กต์ GoogleAuth
|
GoogleAuth.isSignedIn.listen(listener)
ฟังการเปลี่ยนแปลงของสถานะการลงชื่อเข้าใช้ของผู้ใช้ปัจจุบัน
อาร์กิวเมนต์ | |
---|---|
listener |
ฟังก์ชันที่ใช้ค่าบูลีน listen() จะส่ง true ไปยังฟังก์ชันนี้เมื่อผู้ใช้ลงชื่อเข้าใช้ และ false เมื่อผู้ใช้ออกจากระบบ
|
GoogleAuth.signIn()
ลงชื่อเข้าใช้ผู้ใช้ด้วยตัวเลือกที่ระบุให้ gapi.auth2.init()
การส่งคืน | |
---|---|
แหวนแทนคําสัญญา | Promise ที่ดําเนินการด้วยอินสแตนซ์ GoogleUser เมื่อผู้ใช้ตรวจสอบสิทธิ์และให้สิทธิ์ขอบเขตที่ขอเรียบร้อยแล้ว หรือปฏิเสธด้วยออบเจ็กต์ที่มีพร็อพเพอร์ตี้ error หากเกิดข้อผิดพลาด (ดู ด้านล่างเพื่อดูรหัสข้อผิดพลาด) |
รหัสข้อผิดพลาด
GoogleAuth.signIn(options)
ลงชื่อเข้าใช้ผู้ใช้โดยใช้ตัวเลือกที่ระบุ
อาร์กิวเมนต์ | |
---|---|
options |
ทําอย่างใดอย่างหนึ่งต่อไปนี้
|
การส่งคืน | |
---|---|
แหวนแทนคําสัญญา | Promise ที่ดําเนินการด้วยอินสแตนซ์ GoogleUser เมื่อผู้ใช้ตรวจสอบสิทธิ์และให้สิทธิ์ขอบเขตที่ขอเรียบร้อยแล้ว หรือปฏิเสธด้วยออบเจ็กต์ที่มีพร็อพเพอร์ตี้ error หากเกิดข้อผิดพลาด (ดู ด้านล่างเพื่อดูรหัสข้อผิดพลาด) |
รหัสข้อผิดพลาด
popup_closed_by_user
- ผู้ใช้ปิดป๊อปอัปก่อนลงชื่อเข้าใช้เสร็จ
access_denied
- ผู้ใช้ปฏิเสธสิทธิ์ในขอบเขตที่จําเป็น
immediate_failed
-
ผู้ใช้จะเลือกโดยอัตโนมัติไม่ได้หากไม่แจ้งให้ขั้นตอนความยินยอม เกิดข้อผิดพลาดขณะใช้
signIn
ด้วยตัวเลือกprompt: 'none'
ไม่ควรใช้ตัวเลือกนี้ เนื่องจากgapi.auth2.init
จะลงชื่อเข้าใช้ให้ผู้ใช้โดยอัตโนมัติหากลงชื่อเข้าใช้ก่อนหน้านี้ในเซสชันก่อนหน้า
gapi.auth2.SignInOptions
อินเทอร์เฟซที่แสดงพารามิเตอร์การกําหนดค่าแบบต่างๆ สําหรับเมธอด GoogleAuth.signIn(options)
พารามิเตอร์ | ||
---|---|---|
prompt |
string |
บังคับใช้โหมดใดโหมดหนึ่งในขั้นตอนความยินยอม ไม่บังคับ ค่าที่เป็นไปได้มีดังนี้
|
scope |
string |
ขอบเขตที่ขอเป็นสตริงที่คั่นด้วยช่องว่าง ที่ด้านบนของขอบเขตที่กําหนดไว้ในพารามิเตอร์ gapi.auth2.init ไม่บังคับหากไม่ได้ตั้งค่า fetch_basic_profile เป็น "เท็จ"
|
ux_mode |
string |
โหมด UX ที่ใช้สําหรับขั้นตอนการลงชื่อเข้าใช้ โดยค่าเริ่มต้น แล้วระบบจะเปิดขั้นตอนคํายินยอมในป๊อปอัป ค่าที่ใช้ได้คือ popup และ redirect |
redirect_uri |
string |
หากใช้ ux_mode='redirect' พารามิเตอร์นี้ช่วยให้คุณลบล้าง redirect_uri เริ่มต้นที่จะใช้ในตอนท้ายของขั้นตอนคํายินยอม redirect_uri เริ่มต้นคือ URL ปัจจุบันที่ตัดออกจากพารามิเตอร์การค้นหาและ Fragment แฮช
|
GoogleAuth.signOut()
ออกจากระบบบัญชีปัจจุบันจากแอปพลิเคชัน
การส่งคืน | |
---|---|
แหวนแทนคําสัญญา | Promise ที่ระบบดําเนินการเมื่อผู้ใช้ออกจากระบบ |
GoogleAuth.disconnect()
เพิกถอนขอบเขตทั้งหมดที่ผู้ใช้ให้
GoogleAuth.grantOfflineAccess(options)
ให้สิทธิ์ผู้ใช้เข้าถึงขอบเขตที่ระบุแบบออฟไลน์
อาร์กิวเมนต์ | |
---|---|
options |
ออบเจ็กต์ gapi.auth2.OfflineAccessOptions ที่มีพารามิเตอร์แบบคีย์-ค่า ดังตัวอย่างต่อไปนี้ { scope: 'profile email' } |
การส่งคืน | |
---|---|
แหวนแทนคําสัญญา | Promise ที่ดําเนินการเมื่อผู้ใช้ให้สิทธิ์ขอบเขตที่ขอ โดยส่งออบเจ็กต์ที่มีรหัสการให้สิทธิ์ไปยังเครื่องจัดการการดําเนินการของ Promise
ดังตัวอย่างต่อไปนี้ auth2.grantOfflineAccess().then(function(resp) { var auth_code = resp.code; }); |
รหัสข้อผิดพลาด
popup_closed_by_user
- ผู้ใช้ปิดป๊อปอัปก่อนที่จะทําตามขั้นตอนความยินยอม
access_denied
- ผู้ใช้ปฏิเสธสิทธิ์ในขอบเขตที่จําเป็น
immediate_failed
-
ผู้ใช้จะเลือกโดยอัตโนมัติไม่ได้หากไม่แจ้งให้ขั้นตอนความยินยอม เกิดข้อผิดพลาดขณะใช้
signIn
ด้วยตัวเลือกprompt: 'none'
ไม่ควรใช้ตัวเลือกนี้ เนื่องจากgapi.auth2.init
จะลงชื่อเข้าใช้ให้ผู้ใช้โดยอัตโนมัติหากลงชื่อเข้าใช้ก่อนหน้านี้ในเซสชันก่อนหน้า
gapi.auth2.OfflineAccessOptions
อินเทอร์เฟซที่แสดงพารามิเตอร์การกําหนดค่าแบบต่างๆ สําหรับเมธอด GoogleAuth.grantOfflineAccess(options)
พารามิเตอร์ | ||
---|---|---|
prompt |
string |
บังคับใช้โหมดใดโหมดหนึ่งในขั้นตอนความยินยอม ไม่บังคับ ค่าที่เป็นไปได้มีดังนี้
|
scope |
string |
ขอบเขตที่ขอเป็นสตริงที่คั่นด้วยช่องว่าง ที่ด้านบนของขอบเขตที่กําหนดไว้ในพารามิเตอร์ gapi.auth2.init ไม่บังคับหากไม่ได้ตั้งค่า fetch_basic_profile เป็น "เท็จ"
|
GoogleAuth.attachClickHandler(container, options, onsuccess, onfailure)
แนบขั้นตอนการลงชื่อเข้าใช้กับเครื่องจัดการคลิกของคอนเทนเนอร์ที่ระบุ
อาร์กิวเมนต์ | |
---|---|
container | รหัสของหรือการอ้างอิงองค์ประกอบ div ที่จะแนบเครื่องจัดการคลิก |
options | ออบเจ็กต์ที่มีคู่คีย์-พารามิเตอร์ ดู GoogleAuth.signIn() |
onsuccess | ฟังก์ชันที่จะเรียกใช้หลังจากการลงชื่อเข้าใช้จะเสร็จสมบูรณ์ |
onfailure | ฟังก์ชันเรียกใช้เมื่อลงชื่อเข้าใช้ไม่สําเร็จ |
ผู้ใช้
ออบเจ็กต์ GoogleUser
แสดงถึงบัญชีผู้ใช้ 1 บัญชี
โดยทั่วไปจะมีการเรียกออบเจ็กต์ GoogleUser
ด้วยการเรียก GoogleAuth.currentUser.get()
GoogleAuth.currentUser.get()
แสดงผลออบเจ็กต์ GoogleUser
ที่แสดงถึงผู้ใช้ปัจจุบัน โปรดทราบว่าในอินสแตนซ์ GoogleAuth
ที่เพิ่งเริ่มต้นนั้นคุณยังไม่ได้กําหนดผู้ใช้ปัจจุบัน ใช้เมธอด currentUser.listen()
หรือ GoogleAuth.then()
เพื่อรับอินสแตนซ์ GoogleAuth
เริ่มต้น
การส่งคืน | |
---|---|
GoogleUser |
ผู้ใช้ปัจจุบัน |
GoogleAuth.currentUser.listen(listener)
ฟังการเปลี่ยนแปลงของ currentUser
อาร์กิวเมนต์ | |
---|---|
listener |
ฟังก์ชันที่ใช้พารามิเตอร์ GoogleUser
listen จะส่งอินสแตนซ์ GoogleUser ของฟังก์ชันนี้ไปยังการเปลี่ยนแปลงทุกรายการที่แก้ไข currentUser
|
GoogleUser.getId()
รับสตริงรหัสที่ไม่ซ้ํากันของผู้ใช้
การส่งคืน | |
---|---|
สตริง | รหัสที่ไม่ซ้ํากันของผู้ใช้ |
GoogleUser.isSignedIn()
แสดงค่า "จริง" หากผู้ใช้ลงชื่อเข้าใช้
การส่งคืน | |
---|---|
บูลีน | เป็นจริงหากผู้ใช้ลงชื่อเข้าใช้ |
GoogleUser.getHostedDomain()
รับโดเมน G Suite ของผู้ใช้หากผู้ใช้ลงชื่อเข้าใช้ด้วยบัญชี G Suite
การส่งคืน | |
---|---|
สตริง | โดเมน G Suite ของผู้ใช้ |
GoogleUser.getGrantedScopes()
รับขอบเขตที่ผู้ใช้กําหนดเป็นสตริงที่คั่นด้วยช่องว่าง
การส่งคืน | |
---|---|
สตริง | ขอบเขตที่ผู้ใช้อนุญาต |
GoogleUser.getBasicProfile()
ดูข้อมูลโปรไฟล์พื้นฐานของผู้ใช้
การส่งคืน | |
---|---|
gapi.auth2.BasicProfile |
คุณดึงข้อมูลพร็อพเพอร์ตี้ของ gapi.auth2.BasicProfile ได้ด้วยวิธีต่อไปนี้
|
GoogleUser.getAuthResponse(includeAuthorizationData)
รับออบเจ็กต์การตอบกลับจากเซสชันการตรวจสอบสิทธิ์ของผู้ใช้
อาร์กิวเมนต์ | |
---|---|
includeAuthorizationData | ไม่บังคับ: บูลีนที่ระบุว่าจะแสดงผลโทเค็นเพื่อการเข้าถึงและขอบเขตหรือไม่ โดยค่าเริ่มต้น ระบบจะไม่แสดงผลโทเค็นเพื่อการเข้าถึงและขอบเขตที่ขอเมื่อ fetch_basic_profile เป็นจริง (ค่าเริ่มต้น) และไม่มีการขอขอบเขตเพิ่มเติม |
การส่งคืน | |
---|---|
gapi.auth2.AuthResponse |
ออบเจ็กต์ gapi.auth2.AuthResponse |
GoogleUser.reloadAuthResponse()
บังคับให้รีเฟรชโทเค็นเพื่อการเข้าถึง จากนั้นส่ง Promise สําหรับ AuthResponse ใหม่
การส่งคืน | |
---|---|
Promise |
Promise ที่ดําเนินการด้วย gapi.auth2.AuthResponse ที่โหลดซ้ําเมื่อโหลดโทเค็น OAuth ซ้ําเสร็จแล้ว
|
gapi.auth2.AuthResponse
การตอบกลับแสดงผลเมื่อเรียกใช้ GoogleUser.getAuthResponse(includeAuthorizationData)
หรือ GoogleUser.reloadAuthResponse()
พร็อพเพอร์ตี้ | ||
---|---|---|
access_token |
string |
โทเค็นเพื่อการเข้าถึงที่ได้รับ |
id_token |
string |
มอบโทเค็นโทเค็นให้ |
scope |
string |
ขอบเขตที่ระบุไว้ในโทเค็นเพื่อการเข้าถึง |
expires_in |
number |
จํานวนวินาทีจนกว่าโทเค็นเพื่อการเข้าถึงจะหมดอายุ |
first_issued_at |
number |
การประทับเวลาที่ผู้ใช้ให้สิทธิ์ขอบเขตที่ขอเป็นครั้งแรก |
expires_at |
number |
การประทับเวลาที่โทเค็นเพื่อการเข้าถึงจะหมดอายุ |
GoogleUser.hasGrantedScopes(scopes)
แสดงค่า "จริง" หากผู้ใช้ให้สิทธิ์ขอบเขตที่ระบุ
อาร์กิวเมนต์ | |
---|---|
scopes | สตริงขอบเขตที่คั่นด้วยช่องว่าง |
การส่งคืน | |
---|---|
บูลีน | เป็นจริงหากให้สิทธิ์ขอบเขต |
GoogleUser.grant(options)
ขอขอบเขตเพิ่มเติมสําหรับผู้ใช้
ดูรายการพารามิเตอร์และรหัสข้อผิดพลาดที่ GoogleAuth.signIn()
GoogleUser.grantOfflineAccess(options)
ให้สิทธิ์ผู้ใช้เข้าถึงขอบเขตที่ระบุแบบออฟไลน์
อาร์กิวเมนต์ | |
---|---|
options |
ออบเจ็กต์ gapi.auth2.OfflineAccessOptions ที่มีพารามิเตอร์แบบคีย์-ค่า ดังตัวอย่างต่อไปนี้ { scope: 'profile email' } |
GoogleUser.disconnect()
เพิกถอนขอบเขตทั้งหมดที่ผู้ใช้ให้สําหรับแอปพลิเคชัน
องค์ประกอบ UI
gapi.signin2.render(id, options)
แสดงปุ่มลงชื่อเข้าใช้ในองค์ประกอบด้วยรหัสที่ระบุ โดยใช้การตั้งค่าที่ระบุโดยออบเจ็กต์ options
อาร์กิวเมนต์ | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | รหัสขององค์ประกอบที่จะแสดงปุ่มลงชื่อเข้าใช้ | ||||||||||||||||
options |
วัตถุที่มีการตั้งค่าที่จะใช้แสดงผลปุ่ม เช่น
{ scope: 'email', width: 200, height: 50, longtitle: true, theme: 'dark', onsuccess: handleSuccess, onfailure: handleFailure }คุณระบุตัวเลือกต่อไปนี้ได้
|
ขั้นสูง
gapi.auth2.ในหัวข้อการให้สิทธิ์(params, callback)
ดําเนินการให้สิทธิ์ OAuth 2.0 แบบครั้งเดียว ทั้งนี้ขึ้นอยู่กับพารามิเตอร์ที่ใช้ การดําเนินการนี้จะเปิดป๊อปอัปสําหรับขั้นตอนการลงชื่อเข้าใช้ Google หรือพยายามโหลดการตอบกลับที่ขอแบบเงียบโดยไม่มีการโต้ตอบจากผู้ใช้
Use Case ที่มีประโยชน์ในด้านนี้ได้แก่
- แอปพลิเคชันของคุณขอปลายทาง Google API เพียงครั้งเดียวเท่านั้น เช่น โหลดวิดีโอ YouTube ที่ชื่นชอบของผู้ใช้เมื่อลงชื่อเข้าใช้ครั้งแรก
- แอปพลิเคชันมีโครงสร้างพื้นฐานการจัดการเซสชันของตัวเอง และต้องใช้โทเค็นรหัสเพียงครั้งเดียวเพื่อระบุผู้ใช้ในระบบแบ็กเอนด์ของคุณ
- และมีการใช้หลายรหัสไคลเอ็นต์ในหน้าเดียวกัน
อาร์กิวเมนต์ | |
---|---|
params |
ออบเจ็กต์ที่มีคู่คีย์-ค่าของข้อมูลการกําหนดค่า ดู gapi.auth2.AuthorizeConfig สําหรับพร็อพเพอร์ตี้ต่างๆ ที่กําหนดค่าได้ ดังตัวอย่างต่อไปนี้
{ client_id: 'CLIENT_ID.apps.googleusercontent.com', scope: 'email profile openid', response_type: 'id_token permission' } |
callback |
ฟังก์ชันที่ขอที่มีออบเจ็กต์ gapi.auth2.AuthorizeResponse หลังจากคําขอเสร็จสมบูรณ์ (ไม่ว่าจะดําเนินการสําเร็จหรือล้มเหลว)
|
ตัวอย่าง
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.
});
รหัสข้อผิดพลาด
idpiframe_initialization_failed
-
เริ่มต้นใช้งาน iframe ที่จําเป็นจาก Google ไม่สําเร็จเนื่องจากสภาพแวดล้อมที่ไม่รองรับ พร็อพเพอร์ตี้
details
จะให้ข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดที่สร้างขึ้น popup_closed_by_user
- ผู้ใช้ปิดป๊อปอัปก่อนลงชื่อเข้าใช้เสร็จ
access_denied
- ผู้ใช้ปฏิเสธสิทธิ์ในขอบเขตที่จําเป็น
immediate_failed
-
ผู้ใช้จะเลือกโดยอัตโนมัติไม่ได้หากไม่แจ้งให้ขั้นตอนความยินยอม เกิดข้อผิดพลาดขณะใช้
signIn
ด้วยตัวเลือกprompt: 'none'
gapi.auth2.AuthorizeConfig
อินเทอร์เฟซที่แสดงพารามิเตอร์การกําหนดค่าแบบต่างๆ สําหรับเมธอด gapi.auth2.authorize
พร็อพเพอร์ตี้ | ||
---|---|---|
client_id |
string |
Required รหัสไคลเอ็นต์ของแอปที่ค้นพบและสร้างใน Google Developers Console |
scope |
string |
Required ขอบเขตที่ขอเป็นสตริงที่คั่นด้วยช่องว่าง |
response_type |
string |
รายการประเภทคําตอบที่คั่นด้วยช่องว่าง ค่าเริ่มต้นคือ 'permission' โดยค่าที่เลือกได้มีดังนี้
|
prompt |
string |
บังคับใช้โหมดใดโหมดหนึ่งในขั้นตอนความยินยอม โดยค่าที่เลือกได้มีดังนี้
|
cookie_policy |
string |
โดเมนที่จะใช้สร้างคุกกี้การลงชื่อเข้าใช้ อาจเป็น URI, single_host_origin หรือ none ค่าเริ่มต้นจะเป็น single_host_origin หากไม่ได้ระบุ
|
hosted_domain |
string |
โดเมน G Suite ที่ผู้ใช้ต้องอยู่ในการลงชื่อเข้าใช้ ซึ่งเป็นข้อความที่ไคลเอ็นต์จะแก้ไข ดังนั้นอย่าลืมยืนยันพร็อพเพอร์ตี้โดเมนที่โฮสต์ของผู้ใช้ที่กลับมา |
login_hint |
string |
อีเมลหรือรหัสผู้ใช้ของผู้ใช้ที่เลือกล่วงหน้าในขั้นตอนการลงชื่อเข้าใช้ ผู้ใช้มีแนวโน้มที่จะแก้ไขได้ เว้นแต่ว่าจะมีการใช้ prompt: "none"
|
include_granted_scopes |
boolean |
ส่งคําขอโทเค็นการเข้าถึงที่มีขอบเขตทั้งหมดที่ผู้ใช้ให้ไว้ก่อนหน้านี้กับแอป หรือเฉพาะขอบเขตที่ขอในการโทรปัจจุบัน ค่าเริ่มต้นคือ true
|
plugin_name |
string |
ไม่บังคับ หากตั้งค่าไว้แล้ว รหัสไคลเอ็นต์ที่สร้างขึ้นก่อนวันที่ 29 กรกฎาคม 2022 จะใช้ไลบรารีของ Google Platform ได้ โดยค่าเริ่มต้น ระบบจะบล็อกรหัสไคลเอ็นต์ที่สร้างขึ้นใหม่ไม่ให้ใช้ไลบรารีแพลตฟอร์ม และต้องใช้ไลบรารีบริการข้อมูลประจําตัวของ Google ใหม่แทน คุณอาจเลือกค่าใดก็ได้ ชื่อที่สื่อความหมาย เช่น ชื่อผลิตภัณฑ์หรือปลั๊กอิน ขอแนะนําให้ระบุเพื่อให้ระบุได้ง่าย
เช่น plugin_name: 'YOUR_STRING_HERE'
|
gapi.auth2.AuthorizeResponse
การตอบกลับกลับไปยังโค้ดเรียกกลับของเมธอด gapi.auth2.authorize
แล้ว
พร็อพเพอร์ตี้ | ||
---|---|---|
access_token |
string |
โทเค็นเพื่อการเข้าถึงที่ได้รับ ปรากฏเมื่อระบุ permission หรือ token ใน response_type เท่านั้น
|
id_token |
string |
มอบโทเค็นโทเค็นให้ ปรากฏเมื่อระบุ id_token ใน response_type เท่านั้น
|
code |
string |
รหัสการให้สิทธิ์ที่ได้รับ ปรากฏเมื่อระบุ code ใน response_type เท่านั้น
|
scope |
string |
ขอบเขตที่ระบุไว้ในโทเค็นเพื่อการเข้าถึง ปรากฏเมื่อระบุ permission หรือ token ใน response_type เท่านั้น
|
expires_in |
number |
จํานวนวินาทีจนกว่าโทเค็นเพื่อการเข้าถึงจะหมดอายุ ปรากฏเมื่อระบุ permission หรือ token ใน response_type เท่านั้น
|
first_issued_at |
number |
การประทับเวลาที่ผู้ใช้ให้สิทธิ์ขอบเขตที่ขอเป็นครั้งแรก ปรากฏเมื่อระบุ permission หรือ token ใน response_type เท่านั้น
|
expires_at |
number |
การประทับเวลาที่โทเค็นเพื่อการเข้าถึงจะหมดอายุ ปรากฏเมื่อระบุ permission หรือ token ใน response_type เท่านั้น
|
error |
string |
เมื่อส่งคําขอไม่สําเร็จ ค่านี้จะมีรหัสข้อผิดพลาด |
error_subtype |
string |
เมื่อคําขอล้มเหลว ซึ่งอาจมีข้อมูลเพิ่มเติมเกี่ยวกับรหัสข้อผิดพลาดที่ส่งกลับมาด้วย |