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