คำอธิบาย
ใช้ chrome.identity
API เพื่อรับโทเค็นเพื่อการเข้าถึง OAuth2
สิทธิ์
identity
ประเภท
AccountInfo
พร็อพเพอร์ตี้
-
id
สตริง
ตัวระบุที่ไม่ซ้ำกันสำหรับบัญชี รหัสนี้จะไม่เปลี่ยนแปลงตลอดอายุของบัญชี
AccountStatus
ค่าแจกแจง
"ซิงค์"
ระบุว่ามีการเปิดใช้การซิงค์สำหรับบัญชีหลัก
"ใดก็ได้"
ระบุการมีอยู่ของบัญชีหลัก (หากมี)
GetAuthTokenResult
พร็อพเพอร์ตี้
-
grantedScopes
string[] ไม่บังคับ
รายการขอบเขต OAuth2 ที่ให้กับส่วนขยาย
-
โทเค็น
string ไม่บังคับ
โทเค็นเฉพาะที่เชื่อมโยงกับคำขอ
InvalidTokenDetails
พร็อพเพอร์ตี้
-
โทเค็น
สตริง
โทเค็นเฉพาะที่ควรนำออกจากแคช
ProfileDetails
พร็อพเพอร์ตี้
-
accountStatus
AccountStatus ไม่บังคับ
สถานะของบัญชีหลักที่ลงชื่อเข้าใช้โปรไฟล์ซึ่งควรถูกส่งคืน
ProfileUserInfo
สถานะบัญชีมีค่าเริ่มต้นเป็นSYNC
ProfileUserInfo
พร็อพเพอร์ตี้
-
อีเมล
สตริง
อีเมลของบัญชีผู้ใช้ที่ลงชื่อเข้าใช้โปรไฟล์ปัจจุบัน เว้นว่างไว้หากผู้ใช้ไม่ได้ลงชื่อเข้าใช้ หรือไม่ได้ระบุสิทธิ์
identity.email
สำหรับไฟล์ Manifest -
id
สตริง
ตัวระบุที่ไม่ซ้ำกันสำหรับบัญชี รหัสนี้จะไม่เปลี่ยนแปลงตลอดอายุของบัญชี เว้นว่างไว้หากผู้ใช้ไม่ได้ลงชื่อเข้าใช้ หรือ (ใน M41 ขึ้นไป) ไม่ได้ระบุสิทธิ์ไฟล์ Manifest
identity.email
TokenDetails
พร็อพเพอร์ตี้
-
บัญชี
AccountInfo ไม่บังคับ
รหัสบัญชีที่ควรส่งคืนโทเค็น หากไม่ได้ระบุ ฟังก์ชันนี้จะใช้บัญชีจากโปรไฟล์ Chrome ซึ่งก็คือบัญชีการซิงค์ (หากมี) หรือบัญชีเว็บ Google บัญชีแรก
-
enableGranularPermissions
บูลีน ไม่บังคับ
Chrome เวอร์ชัน 87 ขึ้นไปแฟล็ก
enableGranularPermissions
ช่วยให้ส่วนขยายเลือกใช้ได้ตั้งแต่เนิ่นๆ ในหน้าจอความยินยอมของสิทธิ์แบบละเอียด ซึ่งจะให้สิทธิ์หรือปฏิเสธสิทธิ์ที่ส่งคำขอทีละรายการ -
อินเทอร์แอกทีฟ
บูลีน ไม่บังคับ
การดึงข้อมูลโทเค็นอาจกำหนดให้ผู้ใช้ต้องลงชื่อเข้าใช้ Chrome หรืออนุมัติขอบเขตที่แอปพลิเคชันขอ หากแฟล็กแบบอินเทอร์แอกทีฟคือ
true
getAuthToken
จะแสดงข้อความแจ้งผู้ใช้ตามที่จำเป็น เมื่อระบุสถานะเป็นfalse
หรือละเว้นgetAuthToken
จะแสดงผลล้มเหลวทุกครั้งที่ต้องมีข้อความแจ้ง -
ขอบเขต
string[] ไม่บังคับ
รายการขอบเขต OAuth2 ที่จะส่งคำขอ
เมื่อมีช่อง
scopes
อยู่ ช่องนั้นจะลบล้างรายการขอบเขตที่ระบุใน Manifest.json
WebAuthFlowDetails
พร็อพเพอร์ตี้
-
abortOnLoadForNonInteractive
บูลีน ไม่บังคับ
Chrome 113 ขึ้นไปเลือกว่าจะสิ้นสุด
launchWebAuthFlow
สำหรับคำขอที่ไม่มีการโต้ตอบหรือไม่หลังจากโหลดหน้าเว็บแล้ว พารามิเตอร์นี้ไม่ส่งผลต่อขั้นตอนแบบอินเทอร์แอกทีฟเมื่อตั้งค่าเป็น
true
(ค่าเริ่มต้น) ขั้นตอนจะสิ้นสุดทันทีหลังจากการโหลดหน้าเว็บ เมื่อตั้งค่าเป็นfalse
ขั้นตอนจะสิ้นสุดเมื่อผ่านtimeoutMsForNonInteractive
แล้วเท่านั้น ซึ่งจะเป็นประโยชน์สำหรับผู้ให้บริการข้อมูลประจำตัวที่ใช้ JavaScript ในการเปลี่ยนเส้นทางหลังจากโหลดหน้าเว็บ -
อินเทอร์แอกทีฟ
บูลีน ไม่บังคับ
เลือกว่าจะเปิดขั้นตอนการตรวจสอบสิทธิ์ในโหมดอินเทอร์แอกทีฟหรือไม่
เนื่องจากขั้นตอนการตรวจสอบสิทธิ์บางขั้นตอนอาจเปลี่ยนเส้นทางไปยัง URL ของผลการค้นหาทันที
launchWebAuthFlow
จะซ่อนมุมมองเว็บจนกว่าการนำทางแรกจะเปลี่ยนเส้นทางไปยัง URL สุดท้าย หรือทำการโหลดหน้าเว็บที่ควรจะแสดงจนเสร็จสิ้นหากแฟล็ก
interactive
คือtrue
หน้าต่างจะปรากฏขึ้นเมื่อโหลดหน้าเว็บเสร็จสมบูรณ์ หากแฟล็กคือfalse
หรือละเว้นlaunchWebAuthFlow
จะแสดงผลพร้อมข้อผิดพลาดหากการนำทางเริ่มต้นไม่เสร็จสมบูรณ์สำหรับโฟลว์ที่ใช้ JavaScript สำหรับการเปลี่ยนเส้นทาง คุณจะตั้งค่า
abortOnLoadForNonInteractive
เป็นfalse
ร่วมกับการตั้งค่าtimeoutMsForNonInteractive
เพื่อให้หน้าเว็บมีโอกาสทำการเปลี่ยนเส้นทางได้ -
timeoutMsForNonInteractive
หมายเลข ไม่บังคับ
Chrome 113 ขึ้นไประยะเวลาสูงสุดในหน่วยมิลลิวินาทีที่
launchWebAuthFlow
ได้รับอนุญาตให้ทำงานทั้งหมดในโหมดที่ไม่มีการโต้ตอบ จะมีผลเมื่อinteractive
เท่ากับfalse
เท่านั้น -
URL
สตริง
URL ที่เริ่มขั้นตอนการตรวจสอบสิทธิ์
เมธอด
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(
callback?: function,
)
รีเซ็ตสถานะของ Identity API ดังนี้
- นำโทเค็นเพื่อการเข้าถึง OAuth2 ทั้งหมดออกจากแคชโทเค็น
- นำการตั้งค่าบัญชีของผู้ใช้ออก
- ยกเลิกการให้สิทธิ์ผู้ใช้ในขั้นตอนการตรวจสอบสิทธิ์ทั้งหมด
พารามิเตอร์
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำสัญญา<โมฆะ>
Chrome 106 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
getAccounts()
chrome.identity.getAccounts(
callback?: function,
)
ดึงรายการออบเจ็กต์ AccountInfo ที่อธิบายบัญชีที่ปรากฏในโปรไฟล์
getAccounts
ได้รับการสนับสนุนเฉพาะในเวอร์ชันที่กำลังพัฒนา
พารามิเตอร์
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(accounts: AccountInfo[]) => void
-
บัญชี
-
การคืนสินค้า
-
Promise<AccountInfo[]>
Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
callback?: function,
)
รับโทเค็นเพื่อการเข้าถึง OAuth2 โดยใช้รหัสไคลเอ็นต์และขอบเขตที่ระบุในส่วนoauth2
ของ Manifest.json
Identity API จะแคชโทเค็นเพื่อการเข้าถึงในหน่วยความจำ คุณจึงเรียกใช้ getAuthToken
แบบไม่โต้ตอบได้ทุกเมื่อที่ต้องใช้โทเค็น แคชโทเค็นจะจัดการเวลาหมดอายุโดยอัตโนมัติ
เพื่อให้ผู้ใช้ได้รับประสบการณ์ที่ดี คำขอโทเค็นแบบอินเทอร์แอกทีฟที่สำคัญจะเริ่มจาก UI ในแอปซึ่งอธิบายว่าการให้สิทธิ์มีไว้เพื่ออะไร หากไม่ดำเนินการนี้จะทำให้ผู้ใช้ของคุณได้รับคำขอการให้สิทธิ์ หรือหน้าจอลงชื่อเข้าใช้ของ Chrome หากผู้ใช้ไม่ได้ลงชื่อเข้าใช้โดยไม่มีบริบท โดยเฉพาะอย่างยิ่ง อย่าใช้ getAuthToken
แบบอินเทอร์แอกทีฟตอนที่เปิดตัวแอปเป็นครั้งแรก
หมายเหตุ: เมื่อเรียกใช้ด้วย Callback ฟังก์ชันนี้จะแสดงพร็อพเพอร์ตี้ทั้ง 2 รายการเป็นอาร์กิวเมนต์ที่แยกกันซึ่งส่งไปยัง Callback แทนการส่งคืนออบเจ็กต์
พารามิเตอร์
-
รายละเอียด
TokenDetails ไม่บังคับ
ตัวเลือกโทเค็น
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(result: GetAuthTokenResult) => void
-
ผลลัพธ์Chrome 105 ขึ้นไป
-
การคืนสินค้า
-
Promise<GetAuthTokenResult>
Chrome 105 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
callback?: function,
)
เรียกข้อมูลอีเมลและรหัส GAIA ที่ปรับให้ยากต่อการอ่าน (Obfuscate) ของผู้ใช้ที่ลงชื่อเข้าใช้โปรไฟล์
ต้องมีสิทธิ์ identity.email
สำหรับไฟล์ Manifest มิฉะนั้น ระบบจะแสดงผลผลลัพธ์ที่ว่างเปล่า
API นี้แตกต่างจาก identity.getAccounts ใน 2 เรื่อง ข้อมูลที่ส่งกลับมาจะใช้งานแบบออฟไลน์ได้ และจะใช้ได้กับบัญชีหลักของโปรไฟล์เท่านั้น
พารามิเตอร์
-
รายละเอียด
ProfileDetails ไม่บังคับ
Chrome เวอร์ชัน 84 ขึ้นไปตัวเลือกโปรไฟล์
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(userInfo: ProfileUserInfo) => void
-
userInfo
-
การคืนสินค้า
-
Promise<ProfileUserInfo>
Chrome 106 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
getRedirectURL()
chrome.identity.getRedirectURL(
path?: string,
)
สร้าง URL เปลี่ยนเส้นทางเพื่อใช้ใน launchWebAuthFlow
URL ที่สร้างตรงกับรูปแบบ https://<app-id>.chromiumapp.org/*
พารามิเตอร์
-
เส้นทาง
string ไม่บังคับ
เส้นทางจะต่อท้ายส่วนท้ายของ URL ที่สร้างขึ้น
การคืนสินค้า
-
สตริง
launchWebAuthFlow()
chrome.identity.launchWebAuthFlow(
details: WebAuthFlowDetails,
callback?: function,
)
เริ่มขั้นตอนการตรวจสอบสิทธิ์ที่ URL ที่ระบุ
วิธีนี้จะเปิดใช้ขั้นตอนการตรวจสอบสิทธิ์กับผู้ให้บริการข้อมูลประจำตัวที่ไม่ใช่ Google โดยการเปิดใช้มุมมองเว็บและไปยัง URL แรกในขั้นตอนการตรวจสอบสิทธิ์ของผู้ให้บริการ เมื่อผู้ให้บริการเปลี่ยนเส้นทางไปยัง URL ที่ตรงกับรูปแบบ https://<app-id>.chromiumapp.org/*
หน้าต่างจะปิดและส่ง URL เปลี่ยนเส้นทางสุดท้ายไปยังฟังก์ชัน callback
เพื่อให้ผู้ใช้ได้รับประสบการณ์ที่ดี ขั้นตอนการตรวจสอบสิทธิ์แบบอินเทอร์แอกทีฟที่สำคัญคือเริ่มที่ UI ในแอปซึ่งอธิบายว่าการให้สิทธิ์มีไว้เพื่ออะไร หากไม่ดำเนินการนี้จะทำให้ผู้ใช้ของคุณได้รับคำขอการให้สิทธิ์โดยไม่มีบริบท โดยเฉพาะอย่างยิ่ง อย่าเปิดขั้นตอนการตรวจสอบสิทธิ์แบบอินเทอร์แอกทีฟเมื่อแอปของคุณเปิดตัวเป็นครั้งแรก
พารามิเตอร์
-
รายละเอียด
ตัวเลือกขั้นตอนของ WebAuth
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้(responseUrl?: string) => void
-
responseUrl
string ไม่บังคับ
-
การคืนสินค้า
-
คำมั่นสัญญา<สตริง | ไม่ระบุ>
Chrome 106 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
callback?: function,
)
นำโทเค็นเพื่อการเข้าถึง OAuth2 ออกจากแคชโทเค็นของ Identity API
หากพบว่าโทเค็นเพื่อการเข้าถึงไม่ถูกต้อง ควรส่งโทเค็นเพื่อนำออกCachedAuthToken เพื่อนำออกจากแคช แอปอาจเรียกโทเค็นใหม่ด้วย getAuthToken
พารามิเตอร์
-
รายละเอียด
ข้อมูลโทเค็น
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำสัญญา<โมฆะ>
Chrome 106 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
กิจกรรม
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
เริ่มทำงานเมื่อมีการเปลี่ยนแปลงสถานะการลงชื่อเข้าใช้ของบัญชีในโปรไฟล์ของผู้ใช้
พารามิเตอร์
-
Callback
ฟังก์ชัน
พารามิเตอร์
callback
มีลักษณะดังนี้(account: AccountInfo, signedIn: boolean) => void
-
บัญชี
-
signedIn
boolean
-