
เมื่อเข้าสู่ยุคของท่านผู้นำ (javascript) และ api base การเก็บ session ก็กลายเป็นปัญหา เพราะถ้า server หลายๆ ตัว ก็จะเป็นปัญหามากมายในการจัดการกับ session เหล่านั้น พระเอกของยุคก็เกิดขึ้น json web token ดูตามนี้ได้ครับ
https://github.com/auth0/node-jsonwebtoken มาเริ่มเลยนะครับ
1. Install
1 |
npm install jsonwebtoken |
2. สร้าง Authen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
const jwt = require('jsonwebtoken'); var decoded = ""; var Authen = { getToken: function (payload) { return jwt.sign(payload, this.getSecret()); }, checkToken: function(token){ try { var decoded = jwt.verify(token, this.getSecret()); if (decoded) { this.setDecodeData(decoded); return true; } }catch (e) { return false; } }, setDecodeData: function (data) { decoded = data }, getDecodeData: function () { return decoded }, getSecret: function () { return '#secretxxรหัสลับยากๆหน่อยนะครับ' ; } } module.exports=Authen; |
payload คือข้อมูลที่จะส่งไปยัง client ต้องเป็น json เช่น
1 |
{ user:'admin', type:'admin' , fullname: 'Admin User' } |
getToken เมื่อ check user ผ่าน ก็ส่ง payload มาเพื่อสร้าง token ต่อไป
checkToken ตรวจสอบดูว่า token ถูกต้องไหม ถ้าถูกก็จะเก็บ decode ไว้ใช้งานต่อไป