แพ็กเกจความปลอดภัย

คู่มือนี้อธิบายชุดฟีเจอร์ที่ส่งสัญญาณความน่าเชื่อถือเพิ่มเติมเกี่ยวกับบัญชี Google สัญญาณความน่าเชื่อถือเหล่านี้ช่วยให้ระบบจัดการบัญชี ตัดสินใจตามความเสี่ยงได้ในระหว่างการลงชื่อสมัครใช้ การสร้างบัญชี และในภายหลังสำหรับผู้ใช้ที่กลับมา

เซสชัน

คำขอการตรวจสอบสิทธิ์โดยแอปพลิเคชันจะแสดงผลโทเค็นรหัส ตัวอย่างเช่น เมื่อกดปุ่มลงชื่อเข้าใช้ด้วย Google ระบบจะส่งโทเค็นรหัสกลับไปยัง แอปพลิเคชันไคลเอ็นต์หรือเซิร์ฟเวอร์ Android, iOS หรือเว็บที่แสดงปุ่ม

การตรวจสอบสิทธิ์เพื่อลงชื่อเข้าใช้บัญชี Google เป็นเหตุการณ์ที่แยกต่างหาก การอ้างสิทธิ์ที่ส่งคืนในโทเค็นรหัสจะแสดงถึงเหตุการณ์นี้ เช่น เวลาในการตรวจสอบสิทธิ์และวิธีการที่ใช้ในการลงชื่อเข้าใช้บัญชี Google

ช่วงเวลาการตรวจสอบสิทธิ์และเซสชันของผู้ใช้มี 2 ช่วง ดังนี้

  • เซสชันผู้ใช้ <-> Google สร้างขึ้นเมื่อผู้ใช้ลงชื่อเข้าใช้บัญชี Google Google จะจัดการวงจรและรักษาความปลอดภัยของเซสชันนี้ การอ้างสิทธิ์ auth_timeและamrจะให้ข้อมูลเชิงลึกเกี่ยวกับเซสชันนี้
  • เซสชันผู้ใช้ <-> เซสชันแอปพลิเคชันของคุณ สร้างขึ้นหลังจากที่ผู้ใช้ลงชื่อเข้าใช้ แอปพลิเคชันของคุณ ซึ่งมักจะเริ่มต้นโดยใช้การลงชื่อเข้าใช้ด้วย Google แอปพลิเคชันของคุณ จัดการเซสชันนี้โดยใช้การอ้างสิทธิ์เพื่อปรับปรุงการตัดสินใจเกี่ยวกับการจัดการเซสชันและบัญชี

ผู้ใช้มักโต้ตอบกับบริการของ Google ในอุปกรณ์หลายเครื่อง เช่น โทรศัพท์ คอมพิวเตอร์เดสก์ท็อป จออัจฉริยะ หรือทีวี การลงชื่อเข้าใช้ในแต่ละแพลตฟอร์ม หรืออุปกรณ์จะสร้างเซสชันที่แตกต่างกัน สำหรับการลงชื่อเข้าใช้เว็บ ระบบจะสร้างเซสชันระหว่างเบราว์เซอร์ที่เฉพาะเจาะจงกับ Google โปรดทราบว่าโหมดการท่องเว็บแบบส่วนตัวและโหมดไม่ระบุตัวตนจะสร้างเซสชันแยกต่างหากของตนเอง ด้วยเหตุนี้ บัญชี Google บัญชีเดียวจึงมีเซสชันที่แตกต่างกันหลายเซสชันที่ใช้งานอยู่พร้อมกันในเบราว์เซอร์และอุปกรณ์ต่างๆ ได้ ดูรายละเอียดเพิ่มเติมได้ที่หัวข้อดูอุปกรณ์ที่มีสิทธิ์เข้าถึงบัญชี

สถานะบัญชี Google

เหตุการณ์ทั่วไปในวงจรของบัญชี Google มีดังนี้

ฟีเจอร์ชุดความปลอดภัยที่อธิบายไว้ในคู่มือนี้มีผลกับบัญชีที่ใช้งานอยู่หรือบัญชีที่ถูกปิดใช้ แต่ไม่มีผลกับเหตุการณ์การสร้างหรือการลบบัญชี Google

Google อาจปิดใช้บัญชีได้ทุกเมื่อด้วยเหตุผลบางประการ โปรดดูที่หัวข้อ บัญชีถูกปิดใช้ เมื่อเกิดกรณีนี้ขึ้น ระบบจะสิ้นสุดเซสชัน Google ที่ใช้งานอยู่ และบริการการป้องกันแบบครอบคลุมหลายบริการของ Google จะส่งเหตุการณ์ RISC บัญชีที่ถูกปิดใช้จะถูกบล็อกไม่ให้ใช้การลงชื่อเข้าใช้ด้วย Google ซึ่งหมายความว่า ระบบจะไม่เคยออกโทเค็นรหัสและจึงไม่สามารถใช้เพื่อตรวจสอบบัญชีผู้ใช้ที่ถูกปิดใช้ได้

แม้ว่าการรับเหตุการณ์การป้องกันแบบครอบคลุมหลายบริการ (RISC) จะเป็นทางเลือก แต่เหตุการณ์เหล่านี้เป็นสัญญาณสำคัญในการจัดการเซสชันระหว่างผู้ใช้กับแอปของคุณ คำแนะนำเกี่ยวกับวิธีใช้ RISC และตอบสนองต่อเหตุการณ์อธิบายไว้ในปกป้องบัญชีผู้ใช้ด้วยการป้องกันแบบครอบคลุมหลายบริการ

ตั้งค่า

หากต้องการรับการอ้างสิทธิ์เพิ่มเติม คุณต้องเผยแพร่ ยืนยัน และเปิดใช้ฟีเจอร์ชุดความปลอดภัยของแอป เริ่มต้นด้วยการยืนยันว่าแอปของคุณได้รับการเผยแพร่ และยืนยันแล้ว

  1. เปิด Google Auth Platform
  2. เลือกหรือสร้างโปรเจ็กต์สำหรับแอป
  3. คลิกกลุ่มเป้าหมายและยืนยันว่าสถานะการเผยแพร่เป็นอยู่ระหว่างการผลิต
  4. คลิกศูนย์การยืนยันและตรวจสอบว่าสถานะการยืนยันเป็นยืนยันแล้ว

จากนั้นเปิดใช้การอ้างสิทธิ์เพิ่มเติมโดยทำดังนี้

  1. คลิกการตั้งค่าในเมนู
  2. ในส่วนการตั้งค่าขั้นสูง ให้เลือกตัวเลือกต่อไปนี้
    • การอ้างสิทธิ์อายุเซสชันเพื่อเปิดใช้ 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 วินาที