ต่อจากบทความก่อนหน้า

ทำ Google Sign in ด้วย Credential Manager
“Read Aluar – A community for book lovers and writers. Share, learn, and grow together!” 📖✨

เราจะนำ JWT Token ไปใช้งานต่อในฝั่งของ Server โดยรับ token ได้จากเจ้าตัว GoogleIdTokenCredential จาก variable idToken ที่มีค่าเป็นชนิด String

ในฝั่งของ Google ก็จะมีไลบรารี่ที่ใช้ยืนยันโทเค็น โดยสนับสนุนเซอวิสภาษา Java, Python, Node.js, PHP บทความนี้ขอยกตัวอย่าง Python 🐍👄

ติดตั้งแพคเกจสองตัวนี้ โดย pip install ${package}

pip install google-auth-oauthlib
pip install google-auth-httplib2

จากนั้นให้ import package เข้ามาในไฟล์

from google.oauth2 import id_token
from google.auth.transport import requests

และเราจะยืนยัน token ด้วย

idinfo = id_token.verify_oauth2_token(token,
                                        requests.Request(),
                                        CLIENT_ID)

CLIENT_ID เราต้องเอามาจาก client id ชนิด Web Application นะ โดยวิธีไปเอามาจากบทความที่แล้วซึ่งลิงค์อยู่บนสุด 👍🏻

idinfo จะเป็น payload ที่ Google signin แนบมาให้ในโทเค็นจากฝั่งแอพเราสามารถรับข้อมูลได้ด้วย

iss = idinfo["iss"] มีชนิดเป็น String บ่งบอกใครเป็นผู้สร้างและ Signed token
azp = idinfo["azp"] มีชนิดเป็น String บ่งบอกองค์กรที่ได้รับอนุญาตให้ออก token
aud = idinfo["aud"] มีชนิดเป็น String บ่งบอกออก token นี้สำหรับใคร
sub = idinfo["sub"] มีชนิดเป็น String เป็น id ของผู้ใช้งาน
name = idinfo["name"] มีชนิดเป็น String เป็นชื่อของผู้ใช้งาน
picture = idinfo["picture"] มีชนิดเป็น String เป็นรูปโปรไฟล์ของผู้ใช้งาน
given_name มีชนิดเป็น String เป็นชื่อจริงของผู้ใช้งาน
family_name มีชนิดเป็น String เป็นนามสกุลของผู้ใช้งาน
iat มีชนิดเป็น Int token นี้ถูกสร้างวันไหน
exp มีชนิดเป็น Int token นี้ถูกหมดอายุวันไหน

💡
บางส่วนอาจจะไม่มีค่า หากผู้ใช้ไม่ได้ให้ข้อมูลกับ Google ไว้

สำหรับภาษาอื่น

Verify the Google ID token on your server side | Authentication | Google for Developers