ข้อมูลอ้างอิงนี้อธิบายเมธอดและแอตทริบิวต์ไคลเอ็นต์ 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() เพื่อรับ Promise ที่แก้ไขเมื่อออบเจ็กต์ gapi.auth2.GoogleAuth เริ่มต้นเสร็จแล้ว
|
GoogleAuth.then(onInit, onError)
เรียกใช้ฟังก์ชัน onInit เมื่อออบเจ็กต์ GoogleAuth
ได้รับการเริ่มต้นอย่างสมบูรณ์ หากเกิดข้อผิดพลาดขณะเริ่มต้น (ซึ่งอาจเกิดขึ้นในเบราว์เซอร์เก่าที่ไม่รองรับ) ระบบจะเรียกใช้ฟังก์ชัน onError แทน
อาร์กิวเมนต์ | |
---|---|
onInit |
ฟังก์ชันที่เรียกใช้กับออบเจ็กต์ GoogleAuth เมื่อเริ่มต้นขึ้นอย่างสมบูรณ์
|
onError |
ฟังก์ชันที่เรียกใช้ด้วยออบเจ็กต์ที่มีพร็อพเพอร์ตี้ error หาก GoogleAuth เริ่มต้นไม่สำเร็จ
|
การคืนสินค้า | |
---|---|
สัญญา | Promise ที่ดำเนินการเมื่อฟังก์ชัน onInit ทำงานเสร็จสมบูรณ์ หรือถูกปฏิเสธหากเกิดข้อผิดพลาดในการเริ่มต้น โดยจะคลายคําว่า "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 |
ดึงข้อมูลโปรไฟล์พื้นฐานของผู้ใช้เมื่อลงชื่อเข้าใช้ เพิ่ม "profile", "email" และ "openid" ลงในขอบเขตที่ขอ เป็นจริงหากไม่ได้ระบุ |
hosted_domain |
string |
โดเมน G Suite ที่ผู้ใช้ต้องอยู่ในนั้นจึงจะลงชื่อเข้าใช้ได้ ข้อมูลนี้อาจมีการแก้ไขโดยลูกค้า ดังนั้นโปรดยืนยันพร็อพเพอร์ตี้โดเมนที่โฮสต์ของผู้ใช้ที่กลับมา ใช้ GoogleUser.getHostedDomain() ในไคลเอ็นต์ และการอ้างสิทธิ์ hd ในโทเค็นระบุตัวตนบนเซิร์ฟเวอร์เพื่อยืนยันว่าโดเมนเป็นโดเมนที่คุณต้องการ
|
use_fedcm |
boolean |
ไม่บังคับ ค่าเริ่มต้นคือ True เปิดหรือปิดใช้ API ของ FedCM ในเบราว์เซอร์ระหว่างการลงชื่อเข้าใช้ |
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 Services เวอร์ชันใหม่แทน คุณเลือกค่าใดก็ได้ แต่ขอแนะนำให้ใช้ชื่อที่สื่อความหมาย เช่น ชื่อผลิตภัณฑ์หรือปลั๊กอินเพื่อระบุ
ตัวอย่าง: 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)
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 params ไม่บังคับหากไม่ได้ตั้งค่า 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 params ไม่บังคับหากไม่ได้ตั้งค่า 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.authorize(params, callback)
ดำเนินการให้สิทธิ์ OAuth 2.0 แบบครั้งเดียว การดำเนินการนี้จะเปิดป๊อปอัปไปยังขั้นตอนการลงชื่อเข้าใช้ Google หรือพยายามโหลดคำตอบที่ขอแบบเงียบโดยที่ผู้ใช้ไม่ต้องดำเนินการใดๆ ทั้งนี้ขึ้นอยู่กับพารามิเตอร์ที่ใช้
กรณีการใช้งานบางส่วนที่วิธีนี้มีประโยชน์ ได้แก่
- แอปพลิเคชันของคุณต้องขอปลายทาง 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 |
ต้องระบุ รหัสไคลเอ็นต์ของแอป ซึ่งดูและสร้างได้ในคอนโซล 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 ได้ โดยค่าเริ่มต้น ระบบจะบล็อกรหัสไคลเอ็นต์ที่สร้างขึ้นใหม่ไม่ให้ใช้ไลบรารีแพลตฟอร์ม และต้องใช้ไลบรารี Google Identity Services เวอร์ชันใหม่แทน คุณเลือกค่าใดก็ได้ แต่ขอแนะนำให้ใช้ชื่อที่สื่อความหมาย เช่น ชื่อผลิตภัณฑ์หรือปลั๊กอิน เพื่อให้ระบุได้ง่าย
ตัวอย่าง: plugin_name: 'YOUR_STRING_HERE'
|
gapi.auth2.AuthorizeResponse
คำตอบที่แสดงผลใน Callback ของเมธอด
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 |
เมื่อคำขอไม่สำเร็จ ข้อมูลนี้อาจมีข้อมูลเพิ่มเติมเกี่ยวกับรหัสข้อผิดพลาดที่แสดง |