Showing posts with label refresh token. Show all posts
Showing posts with label refresh token. Show all posts

Monday, August 5, 2019

[Laravel - Package] วิธีการเปลี่ยนข้อมูลที่ใช้สำหรับ Subject Claim ของ JWT ใน Laravel Model
[Laravel - Package] How to Change Data for Subject Claim of JWT in Laravel Model

JSON Web Token (JWT) ถูกใช้ใน stateless web application

jwt-auth เป็น JWT package ที่นิยมใช้สำหรับ Laravel framework

package นี้จะใช้ ID ของผู้ใช้งานเป็น sub claim (subject claim) โดยอัตโนมัติ

เนื่องจาก payload ของ JWT สามารถ decode ที่ใดก็ได้ โดยไม่จำเป็นต้องใช้ key ใดๆ การใช้ ID ของผู้ใช้งาน จึงทำให้เกิดปัญหาทางด้านความปลอดภัย

คุณสามารถเปลี่ยนฟิลด์ ID ของผู้ใช้งานเป็นฟิลด์อื่นด้วยวิธีตามด้านล่างนี้ เพื่อหลีกเลี่ยงปัญาด้านความปลอดภัย

Saturday, April 7, 2018

[Laravel - Package] การสร้าง Refresh Token เองจาก jwt-auth version 1.0.0-rc.1
[Laravel - Package] How to Manually Generate Refresh Token from jwt-auth version 1.0.0-rc.1

tymon/jwt-auth เป็น library สำหรับจัดการการเข้าใช้งานแบบ token โดยเวอร์ชั่นล่าสุดในตอนนี้ คือ 1.0.0-rc.1

สำหรับ access token สามารถสร้าง, ตรวจสอบและใช้งานได้อย่างปกติ แต่สำหรับการ refresh token นั้นจะผิดแปลกไปจาก library สำหรับ JWT ทั่วไป

โดยทั่วไปแล้ว หลังจากที่เรา refresh token ไปแล้ว เราจะได้ access token ใหม่ที่เริ่มนับเวลาหมดอายุรวมถึงเวลาที่สามารถทำการ refresh ใหม่ด้วย เพื่อใช้ token นั้นในระบบต่อไป โดยที่ระบบจะบังคับให้เรา login ใหม่ก็ต่อเมื่อเราไม่ได้ใช้งานระบบเป็นเวลานานจน access token หมดอายุและเลยกำหนดเวลาที่จะ refresh token ได้

สำหรับการ refresh token ของ jwt-auth นั้น access token ใหม่จะเริ่มนับเวลาหมดอายุใหม่เท่านั้น แต่เวลาที่สามารถทำการ refresh ใหม่นั้น ยังคงนับเวลาต่อจากเวลาของ token เดิม เนื่องจากเวลาสร้างของ access token ใหม่ใช้เวลาสร้างเดียวกับ access token เดิม ทำให้ไม่ว่าเราจะ refresh token ไปกี่ครั้ง ระบบก็จะบังคับให้เรา login ใหม่ เมื่อ access token ปัจจุบันหมดอายุและเลยกำหนดเวลาที่จะ refresh token ตัวแรกที่ได้หลังจาก log in ได้