การอ้างอิงนี้อธิบายวิธีไคลเอ็นต์และแอตทริบิวต์ JavaScript ที่คุณจะ ใช้ Google Sign-In ในเว็บแอปพลิเคชัน
หากคุณประสบปัญหาในการใช้ไลบรารี โปรดรายงาน ที่เก็บของ 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() เพื่อรับคำสัญญา
ที่ได้รับการแก้ไขเมื่อออบเจ็กต์ 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 API |
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 ในโทเค็นรหัสบน
เซิร์ฟเวอร์เพื่อยืนยันโดเมนนั้นเป็นสิ่งที่คุณคาดหวัง
|
use_fedcm |
boolean |
ไม่บังคับ ค่าเริ่มต้นคือ True เปิดหรือปิดใช้
FedCM API ของเบราว์เซอร์ในระหว่างการลงชื่อเข้าใช้ |
ux_mode |
string |
โหมด UX ที่ใช้สำหรับขั้นตอนการลงชื่อเข้าใช้ ระบบจะเปิดขั้นตอนการขอความยินยอมโดยค่าเริ่มต้น
ในป๊อปอัป ค่าที่ถูกต้องคือ popup และ redirect |
redirect_uri |
string |
หากใช้ ux_mode='redirect' พารามิเตอร์นี้จะช่วยให้คุณลบล้าง
ระบบจะใช้ redirect_uri เริ่มต้นเมื่อสิ้นสุดขั้นตอนการขอความยินยอม
ค่าเริ่มต้น redirect_uri คือ URL ปัจจุบันที่ถูกตัดออกจากพารามิเตอร์การค้นหาและแฮช
ส่วนย่อย
|
enable_granular_consent |
boolean |
ไม่บังคับ เลือกว่าจะเปิดใช้หรือไม่
รายละเอียด
สิทธิ์ หากตั้งค่าเป็น false ระบบ Google จะแสดงรายละเอียดที่ละเอียดยิ่งขึ้น
ระบบจะปิดใช้สิทธิ์ของบัญชีสำหรับรหัสไคลเอ็นต์ OAuth ที่สร้างก่อนวันที่
2019 ไม่ส่งผลกระทบต่อรหัสไคลเอ็นต์ OAuth ที่สร้างขึ้นระหว่างหรือหลังปี 2019 ตั้งแต่
สิทธิ์ที่ละเอียดยิ่งขึ้นจะเปิดใช้อยู่เสมอ
|
plugin_name |
string |
ไม่บังคับ หากมีการตั้งค่านี้ ระบบจะสร้างรหัสไคลเอ็นต์ใหม่ก่อนเดือนกรกฎาคม
ในวันที่ 29 ปี 2022 จะใช้ไลบรารี Google Platform เวอร์ชันเก่าได้
โดยค่าเริ่มต้น รหัสไคลเอ็นต์ที่สร้างขึ้นใหม่จะถูกบล็อกไม่ให้ใช้
ไลบรารีของแพลตฟอร์ม และต้องใช้ Google Identity ที่ใหม่กว่าแทน
ไลบรารีบริการ คุณสามารถเลือกค่าใดก็ได้ ซึ่งเป็นชื่อที่สื่อความหมาย เช่น
แนะนำให้ใช้ชื่อผลิตภัณฑ์หรือปลั๊กอิน
เพื่อระบุตัวตน
เช่น plugin_name: 'YOUR_STRING_HERE'
|
การตรวจสอบสิทธิ์
GoogleAuth
เป็นคลาส Singleton ที่มีวิธีการอนุญาตให้ผู้ใช้ลงชื่อเข้าใช้ด้วยบัญชี 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 ปัจจุบันที่ตัดการค้นหาออก
พารามิเตอร์ และส่วนเครื่องหมายแฮชแท็ก
|
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)
แนบขั้นตอนการลงชื่อเข้าใช้กับ Click Handler ของคอนเทนเนอร์ที่ระบุ
อาร์กิวเมนต์ | |
---|---|
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.Authorize(params, callback)
ดำเนินการให้สิทธิ์ OAuth 2.0 แบบครั้งเดียว ซึ่งจะเป็นการเปิด ไปยังขั้นตอนการลงชื่อเข้าใช้ Google หรือพยายามโหลดคำตอบที่ขอโดยไม่มีการโต้ตอบของผู้ใช้
กรณีการใช้งานบางส่วนที่วิธีนี้เป็นประโยชน์มีดังนี้
- แอปพลิเคชันของคุณต้องขออุปกรณ์ปลายทาง Google API เพียงครั้งเดียว เช่น เพื่อโหลด วิดีโอ YouTube ที่ผู้ใช้ชื่นชอบเมื่อลงชื่อเข้าใช้ครั้งแรก
- แอปพลิเคชันของคุณมีโครงสร้างพื้นฐานการจัดการเซสชันของตนเอง และต้องการเพียง โทเค็นรหัส 1 ครั้งเพื่อระบุผู้ใช้ในแบ็กเอนด์ของคุณ
- มีการใช้รหัสไคลเอ็นต์หลายรหัสภายในหน้าเดียวกัน
อาร์กิวเมนต์ | |
---|---|
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 |
ต้องระบุ รหัสไคลเอ็นต์ของแอปที่พบและสร้างในคอนโซล Google API |
scope |
string |
ต้องระบุ ขอบเขตที่จะส่งคำขอ เป็นสตริงที่คั่นด้วยช่องว่าง |
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
|
enable_granular_consent |
boolean |
ไม่บังคับ เลือกว่าจะเปิดใช้หรือไม่
รายละเอียด
สิทธิ์ หากตั้งค่าเป็น false ระบบ Google จะแสดงรายละเอียดที่ละเอียดยิ่งขึ้น
ระบบจะปิดใช้สิทธิ์ของบัญชีสำหรับรหัสไคลเอ็นต์ OAuth ที่สร้างก่อนวันที่
2019 ไม่ส่งผลกระทบต่อรหัสไคลเอ็นต์ OAuth ที่สร้างขึ้นระหว่างหรือหลังปี 2019 ตั้งแต่
สิทธิ์ที่ละเอียดยิ่งขึ้นจะเปิดใช้อยู่เสมอ
|
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 |
เมื่อคำขอล้มเหลว อาจมีข้อมูลเพิ่มเติมของรหัสข้อผิดพลาดด้วย ส่งคืนแล้ว |