เรากําลังจะ ปิดให้บริการไลบรารีแพลตฟอร์มการลงชื่อเข้าใช้ Google สําหรับเว็บ คลังจะดาวน์โหลดไม่ได้หลังจากวันที่เลิกใช้งาน 31 มีนาคม 2023 แต่ให้ใช้บริการใหม่ของ Google Identity สําหรับเว็บแทน
โดยค่าเริ่มต้น ระบบจะบล็อกรหัสไคลเอ็นต์ที่สร้างขึ้นใหม่ไม่ให้ใช้ไลบรารีแพลตฟอร์มเก่า รหัสลูกค้าที่มีอยู่จะไม่ได้รับผลกระทบ โดยรหัสไคลเอ็นต์ใหม่ที่สร้างขึ้นก่อนวันที่ 29 กรกฎาคม 2022 จะตั้งค่า `plugin_name` เพื่อเปิดใช้ไลบรารี Google Platform ได้

การอ้างอิงไคลเอ็นต์ JavaScript สําหรับ Google Sign-In

ข้อมูลอ้างอิงนี้จะอธิบายเมธอดและแอตทริบิวต์ของไคลเอ็นต์ 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)

GoogleAuth.signIn(options)

ลงชื่อเข้าใช้ผู้ใช้โดยใช้ตัวเลือกที่ระบุ

อาร์กิวเมนต์
options ทําอย่างใดอย่างหนึ่งต่อไปนี้
  • ออบเจ็กต์ gapi.auth2.SignInOptions ที่มีคู่คีย์-ค่าของพารามิเตอร์การลงชื่อเข้าใช้ ดังตัวอย่างต่อไปนี้
    {
      scope: 'profile email'
    }
  • อินสแตนซ์ของ gapi.auth2.SigninOptionsBuilder ดังตัวอย่างต่อไปนี้
    options = new gapi.auth2.SigninOptionsBuilder();
    options.setAppPackageName('com.example.app');
    options.setFetchBasicProfile(True);
    options.setPrompt('select_account');
    options.setScope('profile').setScope('email');
การส่งคืน
แหวนแทนคําสัญญา 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 บังคับใช้โหมดใดโหมดหนึ่งในขั้นตอนความยินยอม ไม่บังคับ
ค่าที่เป็นไปได้มีดังนี้
  • consent
    เซิร์ฟเวอร์การให้สิทธิ์จะแจ้งให้ผู้ใช้ขอคํายินยอมก่อนส่งคืน ข้อมูลไปยังแอปพลิเคชัน
  • select_account
    เซิร์ฟเวอร์การให้สิทธิ์จะแจ้งให้ผู้ใช้เลือกบัญชี Google วิธีนี้ช่วยให้ผู้ใช้ที่มีหลายบัญชีเลือกได้จากหลายบัญชีที่อาจมีเซสชันปัจจุบันอยู่
  • none (ไม่แนะนํา)
    เซิร์ฟเวอร์การให้สิทธิ์จะไม่แสดงหน้าจอการตรวจสอบสิทธิ์หรือคํายินยอมของผู้ใช้ ระบบจะแสดงข้อผิดพลาดหากผู้ใช้ยังไม่ได้ตรวจสอบสิทธิ์และไม่เคยยอมรับในขอบเขตที่ขอก่อนหน้านี้
    เนื่องจาก gapi.auth2.init จะลงชื่อเข้าใช้แอปพลิเคชันให้ผู้ใช้โดยอัตโนมัติหากลงชื่อเข้าใช้ไว้ก่อนหน้านี้ การเรียกใช้ signIn({prompt: 'none'}) มักจะไม่สําเร็จ
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 บังคับใช้โหมดใดโหมดหนึ่งในขั้นตอนความยินยอม ไม่บังคับ
ค่าที่เป็นไปได้มีดังนี้
  • consent
    เซิร์ฟเวอร์การให้สิทธิ์จะแจ้งให้ผู้ใช้ขอคํายินยอมก่อนส่งคืน ข้อมูลไปยังแอปพลิเคชัน
  • select_account
    เซิร์ฟเวอร์การให้สิทธิ์จะแจ้งให้ผู้ใช้เลือกบัญชี Google วิธีนี้ช่วยให้ผู้ใช้ที่มีหลายบัญชีเลือกได้จากหลายบัญชีที่อาจมีเซสชันปัจจุบันอยู่
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 ได้ด้วยวิธีต่อไปนี้
  • BasicProfile.getId()
  • BasicProfile.getName()
  • BasicProfile.getGrantnName()
  • BasicProfile.getFamilyName()
  • BasicProfile.getImageUrl()
  • BasicProfile.getEmail()

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
}
คุณระบุตัวเลือกต่อไปนี้ได้
พารามิเตอร์
ขอบเขต ขอบเขตที่จะขอเมื่อผู้ใช้ลงชื่อเข้าใช้ (ค่าเริ่มต้น: profile)
width ความกว้างของปุ่มเป็นพิกเซล (ค่าเริ่มต้น: 120)
height ความสูงของปุ่มเป็นพิกเซล (ค่าเริ่มต้น: 36)
ชื่อยาว แสดงป้ายกํากับแบบยาว เช่น "ลงชื่อเข้าใช้ด้วย Google" แทน "ลงชื่อเข้าใช้" (ค่าเริ่มต้น: false) เมื่อใช้ชื่อยาว คุณควรเพิ่มความกว้างของปุ่มจากค่าเริ่มต้น
ธีม [theme] ธีมสีของปุ่มอาจเป็น light หรือ dark (ค่าเริ่มต้น: light)
เมื่อสําเร็จ ฟังก์ชันเรียกกลับเพื่อเรียกเมื่อผู้ใช้ลงชื่อเข้าใช้สําเร็จ ฟังก์ชันนี้ต้องมีอาร์กิวเมนต์ 1 อินสแตนซ์คืออินสแตนซ์ของ gapi.auth2.GoogleUser (ค่าเริ่มต้น: ไม่มี)
ความล้มเหลว ฟังก์ชันเรียกกลับเพื่อเรียกเมื่อลงชื่อเข้าใช้ไม่สําเร็จ ฟังก์ชันนี้จะไม่มีอาร์กิวเมนต์ (ค่าเริ่มต้น: ไม่มี)

ขั้นสูง

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' โดยค่าที่เลือกได้มีดังนี้
  • id_token เพื่อเรียกโทเค็นรหัส
  • permission (หรือ token) เพื่อเรียกโทเค็นเพื่อการเข้าถึง
  • code เพื่อรับรหัสการให้สิทธิ์
prompt string บังคับใช้โหมดใดโหมดหนึ่งในขั้นตอนความยินยอม โดยค่าที่เลือกได้มีดังนี้
  • consent
    เซิร์ฟเวอร์การให้สิทธิ์จะแจ้งให้ผู้ใช้ขอคํายินยอมก่อนส่งคืน ข้อมูลไปยังแอปพลิเคชัน
  • select_account
    เซิร์ฟเวอร์การให้สิทธิ์จะแจ้งให้ผู้ใช้เลือกบัญชี Google วิธีนี้ช่วยให้ผู้ใช้ที่มีหลายบัญชีเลือกได้จากหลายบัญชีที่อาจมีเซสชันปัจจุบันอยู่
  • none
    เซิร์ฟเวอร์การให้สิทธิ์จะไม่แสดงหน้าจอการตรวจสอบสิทธิ์หรือคํายินยอมของผู้ใช้ ระบบจะแสดงข้อผิดพลาดหากผู้ใช้ยังไม่ได้ตรวจสอบสิทธิ์และไม่เคยยอมรับในขอบเขตที่ขอก่อนหน้านี้
    หากมีการขอ code เป็นประเภทการตอบกลับ รหัสที่ส่งคืนจะแลกเปลี่ยนได้สําหรับ access_token เท่านั้น ไม่ใช่ refresh_token
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 เมื่อคําขอล้มเหลว ซึ่งอาจมีข้อมูลเพิ่มเติมเกี่ยวกับรหัสข้อผิดพลาดที่ส่งกลับมาด้วย