คู่มือนี้อธิบายชุดฟีเจอร์ที่ส่งสัญญาณความน่าเชื่อถือเพิ่มเติมเกี่ยวกับบัญชี Google สัญญาณความน่าเชื่อถือเหล่านี้ช่วยให้ระบบจัดการบัญชี ตัดสินใจตามความเสี่ยงได้ในระหว่างการลงชื่อสมัครใช้ การสร้างบัญชี และในภายหลังสำหรับผู้ใช้ที่กลับมา
เซสชัน
คำขอการตรวจสอบสิทธิ์โดยแอปพลิเคชันจะแสดงผลโทเค็นรหัส ตัวอย่างเช่น เมื่อกดปุ่มลงชื่อเข้าใช้ด้วย Google ระบบจะส่งโทเค็นรหัสกลับไปยัง แอปพลิเคชันไคลเอ็นต์หรือเซิร์ฟเวอร์ Android, iOS หรือเว็บที่แสดงปุ่ม
การตรวจสอบสิทธิ์เพื่อลงชื่อเข้าใช้บัญชี Google เป็นเหตุการณ์ที่แยกต่างหาก การอ้างสิทธิ์ที่ส่งคืนในโทเค็นรหัสจะแสดงถึงเหตุการณ์นี้ เช่น เวลาในการตรวจสอบสิทธิ์และวิธีการที่ใช้ในการลงชื่อเข้าใช้บัญชี Google
ช่วงเวลาการตรวจสอบสิทธิ์และเซสชันของผู้ใช้มี 2 ช่วง ดังนี้
- เซสชันผู้ใช้ <-> Google สร้างขึ้นเมื่อผู้ใช้ลงชื่อเข้าใช้บัญชี Google
Google จะจัดการวงจรและรักษาความปลอดภัยของเซสชันนี้ การอ้างสิทธิ์
auth_timeและamrจะให้ข้อมูลเชิงลึกเกี่ยวกับเซสชันนี้ - เซสชันผู้ใช้ <-> เซสชันแอปพลิเคชันของคุณ สร้างขึ้นหลังจากที่ผู้ใช้ลงชื่อเข้าใช้ แอปพลิเคชันของคุณ ซึ่งมักจะเริ่มต้นโดยใช้การลงชื่อเข้าใช้ด้วย Google แอปพลิเคชันของคุณ จัดการเซสชันนี้โดยใช้การอ้างสิทธิ์เพื่อปรับปรุงการตัดสินใจเกี่ยวกับการจัดการเซสชันและบัญชี
ผู้ใช้มักโต้ตอบกับบริการของ Google ในอุปกรณ์หลายเครื่อง เช่น โทรศัพท์ คอมพิวเตอร์เดสก์ท็อป จออัจฉริยะ หรือทีวี การลงชื่อเข้าใช้ในแต่ละแพลตฟอร์ม หรืออุปกรณ์จะสร้างเซสชันที่แตกต่างกัน สำหรับการลงชื่อเข้าใช้เว็บ ระบบจะสร้างเซสชันระหว่างเบราว์เซอร์ที่เฉพาะเจาะจงกับ Google โปรดทราบว่าโหมดการท่องเว็บแบบส่วนตัวและโหมดไม่ระบุตัวตนจะสร้างเซสชันแยกต่างหากของตนเอง ด้วยเหตุนี้ บัญชี Google บัญชีเดียวจึงมีเซสชันที่แตกต่างกันหลายเซสชันที่ใช้งานอยู่พร้อมกันในเบราว์เซอร์และอุปกรณ์ต่างๆ ได้ ดูรายละเอียดเพิ่มเติมได้ที่หัวข้อดูอุปกรณ์ที่มีสิทธิ์เข้าถึงบัญชี
สถานะบัญชี Google
เหตุการณ์ทั่วไปในวงจรของบัญชี Google มีดังนี้
- บุคคลเลือกสร้างบัญชี Google จากนั้น
- Google อาจปิดใช้บัญชีหรือผู้ใช้อาจเปิดใช้งานบัญชีอีกครั้งหลังจากทำตามวิธีกู้คืนบัญชี Google หรือ Gmail และ
- บุคคลอาจตัดสินใจลบบัญชี Google หรือ Google อาจลบบัญชีเนื่องจากนโยบายบัญชี Google ที่ไม่มีการใช้งาน
ฟีเจอร์ชุดความปลอดภัยที่อธิบายไว้ในคู่มือนี้มีผลกับบัญชีที่ใช้งานอยู่หรือบัญชีที่ถูกปิดใช้ แต่ไม่มีผลกับเหตุการณ์การสร้างหรือการลบบัญชี Google
Google อาจปิดใช้บัญชีได้ทุกเมื่อด้วยเหตุผลบางประการ โปรดดูที่หัวข้อ บัญชีถูกปิดใช้ เมื่อเกิดกรณีนี้ขึ้น ระบบจะสิ้นสุดเซสชัน Google ที่ใช้งานอยู่ และบริการการป้องกันแบบครอบคลุมหลายบริการของ Google จะส่งเหตุการณ์ RISC บัญชีที่ถูกปิดใช้จะถูกบล็อกไม่ให้ใช้การลงชื่อเข้าใช้ด้วย Google ซึ่งหมายความว่า ระบบจะไม่เคยออกโทเค็นรหัสและจึงไม่สามารถใช้เพื่อตรวจสอบบัญชีผู้ใช้ที่ถูกปิดใช้ได้
แม้ว่าการรับเหตุการณ์การป้องกันแบบครอบคลุมหลายบริการ (RISC) จะเป็นทางเลือก แต่เหตุการณ์เหล่านี้เป็นสัญญาณสำคัญในการจัดการเซสชันระหว่างผู้ใช้กับแอปของคุณ คำแนะนำเกี่ยวกับวิธีใช้ RISC และตอบสนองต่อเหตุการณ์อธิบายไว้ในปกป้องบัญชีผู้ใช้ด้วยการป้องกันแบบครอบคลุมหลายบริการ
ตั้งค่า
หากต้องการรับการอ้างสิทธิ์เพิ่มเติม คุณต้องเผยแพร่ ยืนยัน และเปิดใช้ฟีเจอร์ชุดความปลอดภัยของแอป เริ่มต้นด้วยการยืนยันว่าแอปของคุณได้รับการเผยแพร่ และยืนยันแล้ว
- เปิด Google Auth Platform
- เลือกหรือสร้างโปรเจ็กต์สำหรับแอป
- คลิกกลุ่มเป้าหมายและยืนยันว่าสถานะการเผยแพร่เป็นอยู่ระหว่างการผลิต
- คลิกศูนย์การยืนยันและตรวจสอบว่าสถานะการยืนยันเป็นยืนยันแล้ว
จากนั้นเปิดใช้การอ้างสิทธิ์เพิ่มเติมโดยทำดังนี้
- คลิกการตั้งค่าในเมนู
- ในส่วนการตั้งค่าขั้นสูง ให้เลือกตัวเลือกต่อไปนี้
- การอ้างสิทธิ์อายุเซสชันเพื่อเปิดใช้
auth_time - การอ้างสิทธิ์ระดับการตรวจสอบสิทธิ์เพื่อเปิดใช้
amr
- การอ้างสิทธิ์อายุเซสชันเพื่อเปิดใช้
ดูข้อมูลเพิ่มเติมได้ที่ศูนย์ช่วยเหลือเกี่ยวกับการยืนยันแอป OAuth
ฟีเจอร์ที่รองรับ
ส่วนนี้จะอธิบายฟีเจอร์แต่ละอย่างที่รวมอยู่ในแพ็กเกจความปลอดภัย
ข้อมูลอ้างอิงเกี่ยวกับวิธีการตรวจสอบสิทธิ์
การอ้างอิงวิธีการตรวจสอบสิทธิ์ (amr) คือการอ้างสิทธิ์ OpenID Connect ที่
อธิบายวิธีการที่ใช้ในระหว่างเหตุการณ์การตรวจสอบสิทธิ์ล่าสุดระหว่าง
ผู้ใช้กับ Google
จากค่า IANA.AMR ที่เป็นไปได้ Google รองรับค่าต่อไปนี้ ซึ่งระบุว่า
hwkมีการใช้คีย์ความปลอดภัยแบบฮาร์ดแวร์mfaการตรวจสอบสิทธิ์แบบหลายปัจจัยเสร็จสมบูรณ์แล้วpwdมีการใช้รหัสผ่านswkมีการใช้คีย์ซอฟต์แวร์ เช่น พาสคีย์smsมีการใช้ SMS เพื่อยืนยันtelใช้การโทรเพื่อยืนยัน
ระบบจะแสดงค่าเหล่านี้อย่างน้อย 1 ค่าเป็นอาร์เรย์ JSON ของสตริงภายในเคลมโทเค็นรหัส amr
amr จะรวมอยู่ในโทเค็นรหัสต่อเมื่อมีข้อมูลเกี่ยวกับวิธีการตรวจสอบสิทธิ์ที่ใช้เท่านั้น และอาจไม่มีแม้ว่าจะมีการขอ
เจ้าของบัญชี Google อาจเลือกกำหนดให้ใช้ 2SV และเลือกวิธีการ MFA ที่จะใช้
เมื่อเปิดใช้การปกป้องขั้นสูงในบัญชี Google คุณจะต้องใช้
วิธีการ 2SV ที่คาดเดาได้ยาก เช่น คีย์ความปลอดภัย Titan (hwk) หรือพาสคีย์ (swk)
ในทั้ง 2 กรณี ค่า mfa จะปรากฏขึ้นเมื่อใช้ปัจจัยมากกว่า 1 อย่างในระหว่างการลงชื่อเข้าใช้บัญชี Google
การมีอยู่ของ mfa ยืนยันว่าเหตุการณ์การตรวจสอบสิทธิ์เป็นไปตามข้อกำหนดของ Google
สำหรับการตรวจสอบสิทธิ์แบบหลายปัจจัย ตัวอย่างเช่น การตรวจสอบสิทธิ์บัญชี Google
ด้วยรหัสผ่าน (pwd) และพาสคีย์ (swk) จะส่งผลให้เกิดการอ้างสิทธิ์ "amr": ["mfa", "pwd", "swk"] นี้
แหล่งข้อมูลเหล่านี้มีข้อมูลเพิ่มเติมเกี่ยวกับการรักษาความปลอดภัยของบัญชีและการตรวจสอบสิทธิ์ผู้ใช้ รักษาความปลอดภัยของบัญชี Google ให้เข้มงวดที่สุดด้วยโปรแกรมการปกป้องขั้นสูง ลงชื่อเข้าใช้ด้วยพาสคีย์แทนรหัสผ่าน และ ใช้คีย์ความปลอดภัยสำหรับการยืนยันแบบ 2 ขั้นตอน
ผู้ดูแลระบบ Workspace จะควบคุมนโยบายการตรวจสอบสิทธิ์สำหรับบัญชี Workspace ที่มีการจัดการ และอาจกำหนดให้ใช้ MFA หรือคีย์ความปลอดภัย ดูข้อมูลเพิ่มเติมได้ที่ ภาพรวมการจัดการข้อมูลประจำตัวของ Google และ ข้อกำหนดการตรวจสอบสิทธิ์แบบหลายปัจจัยสำหรับ Google Cloud การป้องกันและการควบคุมการเข้าสู่ระบบ
เวลาการตรวจสอบสิทธิ์
auth_timeการอ้างสิทธิ์เป็นส่วนมาตรฐานของโปรโตคอล OpenID Connect
ซึ่งให้ข้อมูลเกี่ยวกับเวลาที่ผู้ใช้ปลายทางได้รับการตรวจสอบสิทธิ์ล่าสุด
กับ Google โดยเป็นตัวเลข JSON ที่แสดงจํานวนวินาทีที่ผ่านไป
นับตั้งแต่เวลา Unix (1 มกราคม 1970, 00:00:00 UTC) และเป็นเวลาที่
ผู้ใช้ได้รับการตรวจสอบสิทธิ์ครั้งล่าสุด ลองนึกถึงการอ้างสิทธิ์นี้ว่าเป็นไทม์สแตมป์ที่ระบุเหตุการณ์การเข้าสู่ระบบครั้งล่าสุดของผู้ใช้
ในบัญชี Google จากอุปกรณ์หรือเบราว์เซอร์ปัจจุบัน
การอ้างสิทธิ์นี้รวมอยู่ภายในโทเค็นรหัส ซึ่งเป็น JSON Web Token (JWT)
ที่มีข้อมูลที่ยืนยันแล้วเกี่ยวกับการตรวจสอบสิทธิ์และผู้ใช้
auth_timeอ้างสิทธิ์มีประโยชน์ต่อแอปพลิเคชันของคุณเนื่องจากช่วยให้คุณ
ระบุได้ว่าผู้ใช้ลงชื่อเข้าใช้บัญชี Google ในอุปกรณ์หรือเบราว์เซอร์ที่ใช้ล่าสุดเมื่อใด
ซึ่งอาจมีความสำคัญอย่างยิ่งต่อวัตถุประสงค์ด้านความปลอดภัย เช่น
การตัดสินใจอย่างรอบคอบว่าแอปของคุณควรแสดงคำถามในการตรวจสอบสิทธิ์แบบเพิ่มขั้นตอนก่อนที่จะดำเนินการของผู้ใช้ที่มีความละเอียดอ่อน เช่น การลบบัญชี การเปลี่ยนวิธีการติดต่อของบัญชี หรือการชำระเงิน หรือไม่ Google ไม่รองรับคำขอการตรวจสอบสิทธิ์บัญชี Google อีกครั้ง
ใช้ความใหม่และความเสถียรของเซสชันบัญชี Google ของผู้ใช้เป็นเครื่องหมายรับรองความน่าเชื่อถือ โดยทั่วไปแล้ว
auth_timeค่าล่าสุดเป็นตัวบ่งชี้ ความใหม่ ในขณะที่ค่าที่เก่ากว่าจะบ่งบอกถึงความเสถียร
สำหรับเว็บแอป การผสมผสานระหว่างเบราว์เซอร์และระบบปฏิบัติการของผู้ใช้
จะถือเป็นเซสชันหลังจากที่ผู้ใช้ลงชื่อเข้าใช้บัญชี Google
เว็บไซต์ของคุณจะดูแลเซสชันของผู้ใช้แยกต่างหากด้วย ค่า auth_time ที่ใหม่กว่า
แสดงว่าผู้ใช้เพิ่งลงชื่อเข้าใช้บัญชี Google
ซึ่งมักจะเป็นข้อบ่งชี้ว่าผู้ใช้มีส่วนร่วมและใช้งานอยู่ และสามารถตีความได้ว่าเป็น
สัญญาณของความเสี่ยงที่ต่ำกว่า
ในแพลตฟอร์มอุปกรณ์เคลื่อนที่ เช่น Android โดยปกติแล้วผู้ใช้จะลงชื่อเข้าใช้ในอุปกรณ์โดยตรงโดยใช้วิธีการทางชีวมิติ เช่น การสแกนลายนิ้วมือหรือใบหน้า รวมถึงการปลดล็อกด้วย PIN หรือรูปแบบเฉพาะของอุปกรณ์ แอปและแพลตฟอร์มบนอุปกรณ์เคลื่อนที่มักใช้วิธีการตรวจสอบสิทธิ์ตามแพลตฟอร์มเหล่านี้แทนการสร้างเซสชันใหม่กับ Google ซึ่งส่งผลให้มีการลงชื่อเข้าใช้บัญชี Google ไม่บ่อยนักและมีการอัปเดต auth_time ที่เกี่ยวข้อง ดังนั้นค่า auth_time ล่าสุดอาจบ่งบอกถึงการเปลี่ยนแปลงเซสชันบัญชี Google ที่ใช้งานมานานและทำให้มีความเสี่ยงเพิ่มขึ้น
สัญญาณความน่าเชื่อถือเป็นเรื่องที่ซับซ้อน auth_time คาดว่าจะใช้ร่วมกับสัญญาณอื่นๆ เช่น มีการเปิดใช้การตรวจสอบสิทธิ์แบบหลายปัจจัย (MFA) หรือไม่
วิธีการตรวจสอบสิทธิ์ที่ใช้ และระยะเวลาของเซสชันผู้ใช้ระหว่างแอปพลิเคชันกับแพลตฟอร์มของคุณ
คำขอ
วิธีการเฉพาะที่ใช้ในการขออ้างสิทธิ์ auth_time และ amr จะแตกต่างกันไปตาม API ที่ใช้ แต่ API ทุกรายการจะมีพารามิเตอร์ claims ที่ไม่บังคับเพื่อขอ auth_time และ amr
โปรโตคอล OIDC
เมื่อใช้แพลตฟอร์ม OAuth โดยตรง ให้ขอ auth_time โดยเพิ่มลงในพารามิเตอร์คำขอ claims ที่ไม่บังคับ ตั้งค่าของid_token
ฟิลด์ของออบเจ็กต์ JSON ของการอ้างสิทธิ์เป็น {"auth_time":{"essential":true}}
ในทำนองเดียวกัน ให้เพิ่ม {"amr":{"essential":true}} ลงใน claims เพื่อขอ amr ดังนี้
https://accounts.google.com/o/oauth2/v2/auth? response_type=id_token& client_id=YOUR_CLIENT_ID& scope=openid email profile& redirect_uri=https://example.com/user-login& nonce=123-456-7890& claims={ "id_token": { "auth_time": { "essential":true }, "amr": {"essential":true} } }
ดูข้อมูลเพิ่มเติมได้ที่ OpenID Connect
GIS สำหรับเว็บ
ไลบรารีลงชื่อเข้าใช้ด้วย Google สำหรับเว็บมี API 2 รายการ ได้แก่ HTML และ JavaScript
เพื่อขอการอ้างสิทธิ์เพิ่มเติม เช่น ขอ auth_time และ amr
โดยใช้ JavaScript API
<html>
<body>
<script src="https://accounts.google.com/gsi/client" async></script>
<script>
window.onload = function () {
google.accounts.id.initialize({
client_id: "YOUR_WEB_CLIENT_ID",
callback: function(rsp) { console.log(rsp.credential); },
essential_claims: "auth_time, amr",
});
google.accounts.id.renderButton(
document.getElementById("buttonDiv"),
{ type: "standard", size: "large" }
);
}
</script>
<div id="buttonDiv"></div>
</body>
</html>ดูข้อมูลเพิ่มเติมได้ที่ลงชื่อเข้าใช้ด้วย Google สำหรับเว็บ
GIS สำหรับ Android
ใช้เมธอด setClaims และออบเจ็กต์ Claim เพื่อขอ auth_time และ
amr
อัปเดตทรัพยากร Dependency ของบิลด์เพื่อใช้ไลบรารี
androidx.credentials:credentials-play-services-auth และ
com.google.android.libraries.identity.googleid:googleid เวอร์ชันล่าสุด
สร้างออบเจ็กต์ Claim ประเภท auth_time และ amr โดยใช้
setClaims เพื่อเพิ่มออบเจ็กต์ลงในรายการตัวเลือกการลงชื่อเข้าใช้
val googleIdOption: GetGoogleIdOption = GetGoogleIdOption.Builder() .setAutoSelectEnabled(true) .setFilterByAuthorizedAccounts(true) .setServerClientId(WEB_CLIENT_ID) .setNonce("NONCE") .setClaims(ImmutableList.of( new Claim("auth_time", true), new Claim("amr", true) )) .build()
ดูข้อมูลเพิ่มเติมได้ที่หัวข้อตรวจสอบสิทธิ์ผู้ใช้ด้วยการลงชื่อเข้าใช้ด้วย Google
iOS
SDK การลงชื่อเข้าใช้ด้วย Google สำหรับ iOS จะเพิ่มออบเจ็กต์ authTimeClaim
และพารามิเตอร์ claims ลงในคลาส GIDSignIn ที่ใช้เพื่อขอ auth_time และ amr โดยไม่บังคับ
แอปที่ใช้ ASWebAuthenticationSession จะอัปเดตคุกกี้ที่แชร์ทั้งอุปกรณ์
GIDSignIn จะใช้วิธีนี้โดยค่าเริ่มต้นใน iOS 12 ขึ้นไปและ
macOS 10.15 ขึ้นไป ในกรณีนี้ ระบบจะตรวจสอบสิทธิ์ผู้ใช้ที่ลงชื่อเข้าใช้บัญชี Google
และจัดเก็บเซสชันไว้ในที่เก็บคุกกี้ที่แชร์
auth_time คือการตรวจสอบสิทธิ์ Google ครั้งล่าสุดของผู้ใช้ในอุปกรณ์
ไม่ใช่แค่ภายในแอปของคุณ
SFSafariViewController, WKWebView และ UIWebView ทำงานในแซนด์บ็อกซ์ที่แยกจากกันภายในแอปของคุณ โปรดหลีกเลี่ยงการใช้เมื่อใช้ auth_time นี่คือ
auth_timeการลงชื่อเข้าใช้แอปครั้งล่าสุดของผู้ใช้ เนื่องจากค่าเป็นค่าล่าสุดเสมอ จึงมีความหมายน้อยกว่า
หากต้องการขอ auth_time ให้อัปเดตการขึ้นต่อกันของ GoogleSignIn เป็นเวอร์ชันล่าสุด
และสร้างออบเจ็กต์ authTimeClaim โดยเพิ่มลงในชุด claims
หากต้องการขอให้ amr สร้างออบเจ็กต์ amrClaim และเพิ่มลงในชุด claims
Swift
เพิ่มชุดการอ้างสิทธิ์ลงในเมธอด GIDSignIn.sharedInstance.signIn ดังนี้
let authTimeClaim = GIDClaim.authTime() let amrClaim = GIDClaim.amr() let claims = Set([authTimeClaim, amrClaim])// Start the sign-in process GIDSignIn.sharedInstance.signIn( withPresenting: rootViewController, claims: claims ) { signInResult, error in guard let result = signInResult else { print("Error signing in: (error?.localizedDescription ?? "No error description")") return } // If sign in succeeded, display the app's main content View print("ID Token: (result.user.idToken?.tokenString ?? "No token")") }
Objective-C
เพิ่มชุดการอ้างสิทธิ์ลงในเมธอด signInWithPresentingViewController ดังนี้
GIDClaim *authTimeClaim = [GIDClaim authTimeClaim]; GIDClaim *AMRClaim = [GIDClaim AMRClaim]; NSSet *claims = [NSSet setWithArray:@[authTimeClaim, AMRClaim]];// Include the claims set and start the sign-in process [GIDSignIn.sharedInstance signInWithPresentingViewController:self hint:nil claims:claims completion:^(GIDSignInResult * _Nullable signInResult, NSError * _Nullable error) { // On success signInResult.user.idToken // contains the requested claims. }];
ดูข้อมูลเพิ่มเติมได้ที่การผสานรวม Google Sign-In เข้ากับแอป iOS หรือ macOS
คำตอบ
เมื่อมีการรวมการอ้างสิทธิ์ auth_time หรือ amr ไว้ในคำขอ ระบบจะ
ส่งคืนการอ้างสิทธิ์เหล่านั้นในการตอบกลับเพย์โหลดของโทเค็นรหัสพร้อมกับการอ้างสิทธิ์มาตรฐานอื่นๆ
เช่น iss (ผู้ออก) sub (เรื่อง) aud (ผู้ชม) และ exp (เวลาหมดอายุ)
การอ้างสิทธิ์ที่ขาดหายไปอาจเกิดจากแอปไม่ได้รับการยืนยันหรือมีการปิดใช้การตั้งค่าเพิ่มเติม ซึ่งเป็นการตั้งค่าเริ่มต้น ทำตามวิธีการในส่วนการตั้งค่าเพื่อยืนยันว่ารหัสไคลเอ็นต์และแอปที่ใช้อยู่ได้รับการยืนยันแล้ว และเปิดใช้การอ้างสิทธิ์เพิ่มเติม
ค่าของอ้างสิทธิ์ auth_time คือตัวเลข JSON ที่แสดงจำนวน
วินาทีที่ผ่านไปตั้งแต่ Epoch ของ Unix (1 มกราคม 1970, 00:00:00 UTC)
จนถึงเวลาที่การตรวจสอบสิทธิ์ผู้ใช้เกิดขึ้นครั้งล่าสุด
ค่าของการอ้างสิทธิ์ amr คืออาร์เรย์ JSON ของสตริงที่แสดงถึง
วิธีการตรวจสอบสิทธิ์ที่ใช้ในระหว่างเหตุการณ์การลงชื่อเข้าใช้บัญชี Google ครั้งล่าสุด
นี่คือตัวอย่างโทเค็นรหัสที่ถอดรหัสแล้วซึ่งมีเคลม auth_time และ
amr
{ "iss": "https://accounts.google.com", "azp": "YOUR_CLIENT_ID", "aud": "YOUR_CLIENT_ID", "sub": "117726431651943698600", "email": "alice@example.com", "email_verified": true, "nonce": "123-456-7890", "auth_time": 1748875426, "amr": ["mfa", "pwd", "tel"], "nbf": 1748880889, "name": "Elisa Beckett", "picture": "https://lh3.googleusercontent.com/a/default-user=s96-c", "given_name": "Elisa", "family_name": "Beckett", "iat": 1748881189, "exp": 1748884789, "jti": "8b5d7ce345787d5dbf14ce6e08a8f88ee8c9b5b1" }
โทเค็นรหัสยังมีอ้างสิทธิ์ iat (ออกที่) ซึ่งระบุเวลาที่ออก JWT การเปรียบเทียบการอ้างสิทธิ์ iat และ auth_time จะช่วยให้คุณ
ระบุเวลาที่ผ่านไปนับตั้งแต่การตรวจสอบสิทธิ์ครั้งล่าสุดของผู้ใช้เมื่อเทียบกับเวลาที่
สร้างโทเค็นรหัสที่เฉพาะเจาะจง ตัวอย่างเช่น หาก iat คือ 1748881189 และ auth_time คือ 1748875426 ความแตกต่างคือ 5763 วินาที ซึ่งแสดงถึงเวลาที่ผ่านไป 1 ชั่วโมง 36 นาที และ 3 วินาที