{"_id":"jv3-login-jwt","_rev":"51-93a9f18628cd6ff81c83f4fd821318d1","name":"jv3-login-jwt","dist-tags":{"latest":"2.1.2"},"versions":{"1.2.3":{"name":"jv3-login-jwt","version":"1.2.3","keywords":["jwt","vue3","auth"],"author":{"name":"Pakawat Sunglay","email":"cdnagroup@gmail.com"},"license":"MIT","_id":"jv3-login-jwt@1.2.3","maintainers":[{"name":"cdnagroup","email":"cdnagroup@gmail.com"}],"homepage":"https://bitbucket.org/dnacode/jv3-jwt#readme","bugs":{"email":"https://cdnagroup@bitbucket.org/dnacode/jv3-jwt.git"},"dist":{"shasum":"e953d3b87b151f45b7402eb1c7cfb019b30c01a6","tarball":"https://registry.npmjs.org/jv3-login-jwt/-/jv3-login-jwt-1.2.3.tgz","fileCount":10,"integrity":"sha512-TfwRJF8maVky6lrkbRj4xqCPKRwLYeCjJ0myV7+d3jPaOT21DPvX7OIhMoV/ULzAosXgPJXCU1vaYPvb+HAwZA==","signatures":[{"sig":"MEYCIQCaZl3fZ7vloswjwUU/Xy2FkgSRlPbtR/aPHPOjLSZoDwIhALJlgwLIiFpXY4d3DWY+s5mjG5o7Oal4drLk7gJyPEt2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3380224},"main":"dist/jv3-login-jwt.common.js","types":"./lib/main.d.ts","gitHead":"1230e06b528c1e140934d49b56d9cb2fcc2c3349","private":false,"scripts":{"lint":"vue-cli-service lint","build":"vue-cli-service build","serve":"vue-cli-service serve","lint-fix":"npm run lint -- --fix","build-library":"vue-cli-service build --target lib --name jv3-login-jwt ./src/install.js"},"_npmUser":{"name":"cdnagroup","email":"cdnagroup@gmail.com"},"repository":{"url":"git+https://cdnagroup@bitbucket.org/dnacode/jv3-jwt.git","type":"git"},"_npmVersion":"8.19.2","description":"A Login JWT","directories":{},"_nodeVersion":"16.17.0","dependencies":{"vue":"^3.2.47","yup":"^1.0.2","uuid":"^9.0.0","axios":"^1.3.4","core-js":"^3.29.1","vue-router":"^4.1.6","vee-validate":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"sass":"^1.60.0","eslint":"^8.37.0","node-sass":"^8.0.0","@babel/core":"^7.21.3","sass-loader":"^13.2.2","@vue/cli-service":"~5.0.8","eslint-plugin-vue":"^9.10.0","@babel/eslint-parser":"^7.21.3","@vue/cli-plugin-vuex":"~5.0.8","@vue/cli-plugin-babel":"~5.0.8","@vue/cli-plugin-eslint":"~5.0.8","@vue/cli-plugin-router":"~5.0.8"},"_npmOperationalInternal":{"tmp":"tmp/jv3-login-jwt_1.2.3_1688840108344_0.21002379379352232","host":"s3://npm-registry-packages"}},"1.3.6":{"name":"jv3-login-jwt","version":"1.3.6","keywords":["vue","vue3","login","auth","router","jwt","cdnagroup","plugins"],"author":{"name":"cdnagroup"},"license":"MIT","_id":"jv3-login-jwt@1.3.6","maintainers":[{"name":"cdnagroup","email":"cdnagroup@gmail.com"}],"dist":{"shasum":"b30976d47b104e4d678efa7422c54f31a2346c27","tarball":"https://registry.npmjs.org/jv3-login-jwt/-/jv3-login-jwt-1.3.6.tgz","fileCount":8,"integrity":"sha512-93WPZKhxaQikZcTkWv7XXVarDjVr7BLKrcJKrqL2CdCcnGXw6Wbo1tNc7ZMPlJDYmpUB/hb9NWDJPl4CMJgPaw==","signatures":[{"sig":"MEQCICL61Fic+p5aqZ/Z2Sg2zyubR180+MOZwMB2/vnMC11gAiAfnOwaBAwv4EvpQIplIk0K8/e1KUxaA5pCQtEJk0e2pg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":309703},"main":"dist/jv3-login-jwt.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/jv3-login-jwt.es.js","gitHead":"040ae4bda5ca9e6c176103a95d9d918c183aa2b8","scripts":{"dev":"vite","docs":"typedoc --out docs src","build":"vite build && tsc","preview":"vite preview","version":"echo $npm_package_version","prepublishOnly":"npm run build"},"_npmUser":{"name":"cdnagroup","email":"cdnagroup@gmail.com"},"_npmVersion":"10.5.0","description":"easy login from assign by route by cdnagroup using vuetify","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.0","sass":"^1.77.8","vite":"^5.4.1","typedoc":"^0.26.6","vuetify":"^3.7.0","@mdi/font":"^7.4.47","typescript":"^5.5.3","@vitejs/plugin-vue":"^5.1.2","@vitejs/plugin-basic-ssl":"^1.1.0","vite-plugin-css-injected-by-js":"^3.5.1"},"peerDependencies":{"vue":"^3.0.0","yup":"^1.4.0","axios":"^1.7.4","vue-router":"^4.4.3","vee-validate":"^4.13.2"},"_npmOperationalInternal":{"tmp":"tmp/jv3-login-jwt_1.3.6_1724432754933_0.590504602523833","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"jv3-login-jwt","version":"2.0.0","keywords":["vue","vue3","login","auth","router","jwt","cdnagroup","plugins"],"author":{"name":"cdnagroup"},"license":"MIT","_id":"jv3-login-jwt@2.0.0","maintainers":[{"name":"cdnagroup","email":"cdnagroup@gmail.com"}],"dist":{"shasum":"18ba6ddc3e757ac19ad6b34476e7669188bd1565","tarball":"https://registry.npmjs.org/jv3-login-jwt/-/jv3-login-jwt-2.0.0.tgz","fileCount":9,"integrity":"sha512-d0roRWABlW5kdOAwYlTrPr+94Bss+twlQ3o+VfvnJ/xprlBzeIoWC7EGqHLF6/J+noNUw1GII9UQlHaHdkpHbQ==","signatures":[{"sig":"MEUCIHv2R9d6d2G/oUmRNXbQGMWpv48a4ExrlracPBefaeoWAiEApmPpk6IwtgbmQqrr/F+1RYTspAoX2ajfZB/6h64OOEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318569},"main":"dist/jv3-login-jwt.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/jv3-login-jwt.es.js","gitHead":"5211c2307d15656728eeb10edd74d8701d3c926b","scripts":{"dev":"vite","docs":"typedoc --out docs src","build":"vite build && tsc","preview":"vite preview","version":"echo $npm_package_version","prepublishOnly":"npm run build"},"_npmUser":{"name":"cdnagroup","email":"cdnagroup@gmail.com"},"_npmVersion":"10.5.0","description":"easy login from assign by route by cdnagroup using vuetify","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.0","sass":"^1.77.8","vite":"^5.4.1","pinia":"^3.0.2","typedoc":"^0.26.6","vuetify":"^3.7.0","@mdi/font":"^7.4.47","typescript":"^5.5.3","vue3-markdown-it":"^1.0.10","@vitejs/plugin-vue":"^5.1.2","@vitejs/plugin-basic-ssl":"^1.1.0","vite-plugin-css-injected-by-js":"^3.5.1"},"peerDependencies":{"vue":"^3.0.0","yup":"^1.4.0","axios":"^1.7.4","vue-router":"^4.4.3","vee-validate":"^4.13.2"},"_npmOperationalInternal":{"tmp":"tmp/jv3-login-jwt_2.0.0_1747326402386_0.9563555628859661","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"jv3-login-jwt","version":"2.0.1","keywords":["vue","vue3","login","auth","router","jwt","cdnagroup","plugins"],"author":{"name":"cdnagroup"},"license":"MIT","_id":"jv3-login-jwt@2.0.1","maintainers":[{"name":"cdnagroup","email":"cdnagroup@gmail.com"}],"dist":{"shasum":"15e8cf96d48517bbfc7005e01924f9afd968301d","tarball":"https://registry.npmjs.org/jv3-login-jwt/-/jv3-login-jwt-2.0.1.tgz","fileCount":9,"integrity":"sha512-5tv7a6nNFYmCz2kTgI7x+KtCeqkAMh6yabxi7wRsFR+aqy75USWQtYTaWxNINj1EySlJKhx1qUgC6Rblbuhaog==","signatures":[{"sig":"MEUCIQDVaLFANIpapQWVaa+H+Ihx2SprgczxWDlZb+7xE4DmLgIgCVGrBpkZNBfouT/W/cmdJgjkmHy4EkkARI0RmJvTPmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":320712},"main":"dist/jv3-login-jwt.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/jv3-login-jwt.es.js","gitHead":"ab444bf77349dd88f5560cad275ba533e985a552","scripts":{"dev":"vite","docs":"typedoc --out docs src","build":"vite build && tsc","preview":"vite preview","version":"echo $npm_package_version","prepublishOnly":"npm run build"},"_npmUser":{"name":"cdnagroup","email":"cdnagroup@gmail.com"},"_npmVersion":"10.5.0","description":"easy login from assign by route by cdnagroup using vuetify","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.0","sass":"^1.77.8","vite":"^5.4.1","pinia":"^3.0.2","typedoc":"^0.26.6","vuetify":"^3.7.0","@mdi/font":"^7.4.47","typescript":"^5.5.3","vue3-markdown-it":"^1.0.10","@vitejs/plugin-vue":"^5.1.2","@vitejs/plugin-basic-ssl":"^1.1.0","vite-plugin-css-injected-by-js":"^3.5.1"},"peerDependencies":{"vue":"^3.0.0","yup":"^1.4.0","axios":"^1.7.4","vue-router":"^4.4.3","vee-validate":"^4.13.2"},"_npmOperationalInternal":{"tmp":"tmp/jv3-login-jwt_2.0.1_1748832259758_0.8519727244432977","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"jv3-login-jwt","version":"2.0.2","keywords":["vue","vue3","login","auth","router","jwt","cdnagroup","plugins"],"author":{"name":"cdnagroup"},"license":"MIT","_id":"jv3-login-jwt@2.0.2","maintainers":[{"name":"cdnagroup","email":"cdnagroup@gmail.com"}],"dist":{"shasum":"144b56783ec6023a13831c658349442df6351050","tarball":"https://registry.npmjs.org/jv3-login-jwt/-/jv3-login-jwt-2.0.2.tgz","fileCount":9,"integrity":"sha512-YkNvJJCxBxhnlxc081Ng89dFbymZVloJ/93HQj5DWRjP5/IR51rNyvmR4Wy2slzxvOKjnFDGd0knP/iFhKbHvw==","signatures":[{"sig":"MEYCIQCgER+R2Ag/NaEVTx7cV/QWYft3/PPQD8LR1GyUfPsZHgIhANze91O/49gYOwtTCedlkLc0JqAY2MMPb6am28EvIjpq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321382},"main":"dist/jv3-login-jwt.umd.js","type":"module","types":"dist/index.d.ts","module":"dist/jv3-login-jwt.es.js","gitHead":"e411d10e6e6d5116fab07f07da674f10d26412c7","scripts":{"dev":"vite","docs":"typedoc --out docs src","build":"vite build && tsc","preview":"vite preview","version":"echo $npm_package_version","prepublishOnly":"npm run build"},"_npmUser":{"name":"cdnagroup","email":"cdnagroup@gmail.com"},"_npmVersion":"10.5.0","description":"easy login from assign by route by cdnagroup using vuetify","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.0","sass":"^1.77.8","vite":"^5.4.1","pinia":"^3.0.2","typedoc":"^0.26.6","vuetify":"^3.7.0","@mdi/font":"^7.4.47","typescript":"^5.5.3","vue3-markdown-it":"^1.0.10","@vitejs/plugin-vue":"^5.1.2","@vitejs/plugin-basic-ssl":"^1.1.0","vite-plugin-css-injected-by-js":"^3.5.1"},"peerDependencies":{"vue":"^3.0.0","yup":"^1.4.0","axios":"^1.7.4","vue-router":"^4.4.3","vee-validate":"^4.13.2"},"_npmOperationalInternal":{"tmp":"tmp/jv3-login-jwt_2.0.2_1752716462794_0.061035288183732384","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"jv3-login-jwt","version":"1.2.4","keywords":["jwt","vue3","auth"],"author":{"name":"Pakawat Sunglay","email":"cdnagroup@gmail.com"},"license":"MIT","_id":"jv3-login-jwt@1.2.4","maintainers":[{"name":"cdnagroup","email":"cdnagroup@gmail.com"}],"homepage":"https://bitbucket.org/dnacode/jv3-jwt#readme","bugs":{"email":"https://cdnagroup@bitbucket.org/dnacode/jv3-jwt.git"},"dist":{"shasum":"ebbed4ce184645cca143633e712f048a25a2eca1","tarball":"https://registry.npmjs.org/jv3-login-jwt/-/jv3-login-jwt-1.2.4.tgz","fileCount":16,"integrity":"sha512-6Ydvtrxc5DqHAVgEKh/YfRC/OBfoZ51Yn3Xi8kFfiPJ2V0C6Cyu5mjL8F3woM19uzBIMsomKsev33A+kF0Engg==","signatures":[{"sig":"MEYCIQDpT3/hBSKJjwcO+dO6nv1gGVbMTlyibo2VQrd+NK0KhwIhAKECeof0JRH5u9iFXo0WWC5fR6IUYLD8/O3YEtp5tPLz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3519648},"main":"dist/jv3-login-jwt.common.js","types":"./lib/main.d.ts","gitHead":"dbc6ac1ae1c2e4725b64ce3fe89f2741b1ac809d","private":false,"scripts":{"lint":"vue-cli-service lint","build":"vue-cli-service build","patch":"npm version patch","serve":"vue-cli-service serve","lint-fix":"npm run lint -- --fix","build-library":"vue-cli-service build --target lib --name jv3-login-jwt ./src/install.js"},"_npmUser":{"name":"cdnagroup","email":"cdnagroup@gmail.com"},"repository":{"url":"git+https://cdnagroup@bitbucket.org/dnacode/jv3-jwt.git","type":"git"},"_npmVersion":"10.5.0","description":"A Login JWT","directories":{},"_nodeVersion":"22.14.0","dependencies":{"vue":"^3.2.47","yup":"^1.0.2","uuid":"^9.0.0","axios":"^1.3.4","core-js":"^3.29.1","vue-router":"^4.1.6","vee-validate":"^4.8.4"},"_hasShrinkwrap":false,"devDependencies":{"sass":"^1.60.0","eslint":"^8.37.0","node-sass":"^8.0.0","@babel/core":"^7.21.3","sass-loader":"^13.2.2","@vue/cli-service":"~5.0.8","eslint-plugin-vue":"^9.10.0","@babel/eslint-parser":"^7.21.3","@vue/cli-plugin-vuex":"~5.0.8","@vue/cli-plugin-babel":"~5.0.8","@vue/cli-plugin-eslint":"~5.0.8","@vue/cli-plugin-router":"~5.0.8"},"_npmOperationalInternal":{"tmp":"tmp/jv3-login-jwt_1.2.4_1762250760999_0.016091753342404758","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"jv3-login-jwt","version":"2.1.2","type":"module","description":"easy login from assign by route by cdnagroup using vuetify","main":"dist/jv3-login-jwt.umd.js","module":"dist/jv3-login-jwt.es.js","types":"dist/index.d.ts","scripts":{"dev":"vite","build":"vite build && tsc","preview":"vite preview","prepublishOnly":"npm run build","docs":"typedoc --out docs src","version":"echo $npm_package_version"},"author":{"name":"cdnagroup"},"license":"MIT","keywords":["vue","vue3","login","auth","router","jwt","cdnagroup","plugins"],"peerDependencies":{"axios":"^1.7.4","vee-validate":"^4.13.2","vue":"^3.0.0","vue-router":"^4.4.3","yup":"^1.4.0"},"devDependencies":{"@mdi/font":"^7.4.47","@vitejs/plugin-basic-ssl":"^2.1.0","@vitejs/plugin-vue":"^6.0.1","pinia":"^3.0.3","sass":"^1.93.3","typedoc":"^0.28.14","typescript":"^5.9.3","vite":"^7.1.12","vite-plugin-css-injected-by-js":"^3.5.2","vue":"^3.5.22","vue3-markdown-it":"^1.0.10","vuetify":"^3.10.8"},"_id":"jv3-login-jwt@2.1.2","gitHead":"945626cc66503f41c1f27d0acdadc21161cb5858","_nodeVersion":"22.14.0","_npmVersion":"10.5.0","dist":{"integrity":"sha512-qCYrF9uCAUHM8Da1lmKm9Zhsr9tSdRF7BFSAxd9Kfw8NkEvyCCg7dvfxmUyzCCQ7fwZE4rbyHZFRAdR/65s0BA==","shasum":"33b513031874d198043ecab4ebeb6cbfbaa62c0e","tarball":"https://registry.npmjs.org/jv3-login-jwt/-/jv3-login-jwt-2.1.2.tgz","fileCount":11,"unpackedSize":287033,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDlUj61DCvaE/XlTnF8T/iNnxst/jWgp3dpyFe6KB7ACAIgT/aFC9eANuDFWK2pTkZhDAqfM6zVYKRirjzWqyBELHQ="}]},"_npmUser":{"name":"cdnagroup","email":"cdnagroup@gmail.com"},"directories":{},"maintainers":[{"name":"cdnagroup","email":"cdnagroup@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jv3-login-jwt_2.1.2_1762280526174_0.5703560327367396"},"_hasShrinkwrap":false}},"time":{"created":"2022-04-06T07:04:10.333Z","modified":"2025-11-04T18:22:06.610Z","1.0.3":"2022-04-06T07:04:10.635Z","1.0.4":"2022-04-06T09:16:57.615Z","1.0.5":"2022-04-06T09:40:33.431Z","1.0.6":"2022-04-06T17:19:54.136Z","1.0.7":"2022-04-06T17:32:36.602Z","1.0.8":"2022-04-20T01:57:57.139Z","1.0.9":"2022-04-20T03:18:42.221Z","1.1.0":"2022-11-01T11:09:43.282Z","1.2.0":"2023-03-28T07:40:14.248Z","1.2.0-1":"2023-03-29T04:50:21.406Z","1.2.0-2":"2023-03-29T06:17:44.345Z","1.2.0-3":"2023-03-30T02:53:09.337Z","1.2.1":"2023-07-08T17:55:11.144Z","1.2.0-4":"2023-07-08T17:56:36.379Z","1.2.2":"2023-07-08T18:07:43.037Z","1.2.3":"2023-07-08T18:15:08.644Z","1.2.0-5":"2023-07-10T13:53:53.843Z","1.3.0":"2024-08-23T08:59:05.196Z","1.3.3":"2024-08-23T15:44:55.375Z","1.3.4":"2024-08-23T15:49:11.345Z","1.3.5":"2024-08-23T15:56:31.075Z","1.3.6":"2024-08-23T17:05:55.093Z","2.0.0":"2025-05-15T16:26:42.583Z","2.0.1":"2025-06-02T02:44:19.952Z","2.0.2":"2025-07-17T01:41:03.003Z","1.2.4":"2025-11-04T10:06:01.307Z","2.1.0":"2025-11-04T17:24:01.189Z","2.1.1":"2025-11-04T18:17:30.807Z","2.1.2":"2025-11-04T18:22:06.398Z"},"author":{"name":"cdnagroup"},"license":"MIT","keywords":["vue","vue3","login","auth","router","jwt","cdnagroup","plugins"],"description":"easy login from assign by route by cdnagroup using vuetify","maintainers":[{"name":"cdnagroup","email":"cdnagroup@gmail.com"}],"readme":"# JV3LoginJwt: ปลั๊กอิน Vue 3 SSO อย่างง่าย\n\n**JV3LoginJwt** เป็นปลั๊กอินสำหรับ Vue 3 ที่ช่วยให้คุณสามารถเพิ่มระบบล็อกอินแบบ Single Sign-On (SSO) ให้กับแอปพลิเคชันของคุณได้อย่างง่ายดาย โดยอาศัยกลไก JSON Web Token (JWT) ในการจัดการสถานะการล็อกอินของผู้ใช้\n\n## คุณสมบัติหลัก\n\n* **การผสานรวมที่ราบรื่น:** ออกแบบมาเพื่อทำงานร่วมกับ Vue Router อย่างลงตัว\n* **รองรับ JWT:** ใช้มาตรฐานอุตสาหกรรมสำหรับการพิสูจน์ตัวตนและการให้สิทธิ์\n* **การกำหนดค่าที่ยืดหยุ่น:** ปรับแต่ง URL การล็อกอิน, รีเฟรชโทเค็น, ข้อมูลผู้ใช้ และออกจากระบบได้\n* **การจัดการโทเค็นอัตโนมัติ:** จัดการการจัดเก็บและรีเฟรชโทเค็น JWT โดยอัตโนมัติ\n* **การจัดการสิทธิ์การเข้าถึง:** กำหนดค่าเส้นทางที่ต้องการการล็อกอินผ่าน `meta` ของ Route\n* **ส่วนต่อประสานผู้ใช้ที่กำหนดเอง:** ปรับแต่งหน้าจอการล็อกอินและข้อความต้อนรับได้\n* **การจัดการข้อผิดพลาด:** มีกลไกในการจัดการข้อผิดพลาดที่อาจเกิดขึ้น\n* **การขยายความสามารถ:** รองรับการล็อกอินแบบกำหนดเองและ Callback หลังการล็อกอิน/ออกจากระบบ\n\n## วิธีการใช้งานเบื้องต้น\n\n1.  **ติดตั้งปลั๊กอิน:**\n    ```bash\n    npm install jv3-login-jwt\n    # หรือ\n    yarn add jv3-login-jwt\n    ```\n\n2.  **นำเข้าและใช้งานใน `main.ts`:**\n    ```typescript\n    import { createApp } from \"vue\";\n    import { createRouter, createWebHistory } from \"vue-router\";\n    import App from \"./App.vue\";\n    import HomeView from \"./views/HomeView.vue\";\n    // ... imports อื่นๆ\n    import JV3LoginJwt from \"./jv3-login-jwt\";\n    import vuetify from \"./plugins/vuetify\";\n    import DefaultLayout from \"./layouts/DefaultLayout.vue\";\n\n    // ... กำหนด routes และ router\n\n    const authConfig = {\n      authUrl: \"/auth/token\",\n      refreshUrl: \"/auth/refresh\",\n      userUrl: \"/auth/me\",\n      logoutUrl: \"/auth/logout\",\n      exceptions: [],\n      jwtStorage: \"jwt\",\n      authStorage: \"jauth\",\n      defaultRoutePath: \"/\",\n      defaultTokenExprie: 3600,\n      tokenExprieBefore: 600,\n      title: \"Sigin\",\n      hello: \"Hello นี้คือระบบล็อกอิน แบบง่าย\",\n      customRouteMeta: {\n        noLayout: true,\n      },\n    };\n\n    const app = createApp(App);\n    app.use(vuetify);\n    app.use(JV3LoginJwt, router, authConfig); // เพิ่มปลั๊กอิน JV3LoginJwt พร้อม router และ config\n    app.use(router);\n\n    router.isReady().then(() => {\n      app.mount('#app');\n    });\n    ```\n\n3.  **การใช้งานใน `jauth` ใน `component` ของ Route:**\n    ```typescript\n    <setup lang=\"ts\" setup>\n    ...\n    const jauth = useAccount()\n    const router = useRouter()\n\n    function logout() {\n        jauth.logout(); // ตัวอย่างการ Logout\n    }\n\n    // ตัวอย่างการ รับ user \n    const user = computed(()=>{\n        return jauth.user\n    })\n\n    ...\n    ```\n\n## Interface ที่เกี่ยวข้อง\n\n```typescript\nimport { Router, RouteRecordRaw } from \"vue-router\";\n\nexport interface IJAuthHeader {\n  Authorization?: String;\n  [key: string]: String | undefined;\n}\n\nexport interface IJAuthUser {\n  username: string;\n  password: string;\n  [key: string]: string;\n}\n\nexport interface IJAuthConfig {\n  url: string;\n  path_login: string;\n  path_refresh: string;\n  path_user: string;\n  customLogin?: Function;\n  callbackLogin?: Function;\n  customLogout?: Function;\n  callbackLogout?: Function;\n  exceptions?: Array<any>;\n  jwtStorage: string;\n  defaultTokenExprie?: number;\n  tokenExprieBefore?: number;\n  rolePath?: string;\n  permissionPath?: string;\n  userPath?: string;\n  authStorage: string;\n  defaultRoutePath?: string;\n  handleError?: Function;\n  title?: string;\n  hello?: string;\n  customRouteMeta?: object;\n  loginRouterView?: RouteRecordRaw | undefined | null | any;\n}\n\n// generate table of configuration options\n```\n| Option Name | Type | Default Value | Description |\n|-------------|------|----------------|-------------|\n| url | string | '' | Base URL for authentication API. |\n| path_login | string | '/auth/token' | Endpoint for login requests. |\n| path_refresh | string | '/auth/refresh' | Endpoint for refreshing JWT tokens. |\n| path_user | string | '/auth/me' | Endpoint for fetching user information. |\n| jwtStorage | string | 'jwt' | Key for storing JWT token in localStorage. |\n| authStorage | string | 'jauth' | Key for storing authentication data in localStorage. |\n| defaultTokenExprie | number | 3600 | Default token expiration time in seconds. |\n| tokenExprieBefore | number | 600 | Time in seconds before token expiration to trigger a refresh. |\n| rolePath | string | 'roles' | Path to access user roles in the user object. |\n| permissionPath | string | 'permissions' | Path to access user permissions in the user object. |\n| userPath | string | '' | Path to access user information in the user object. |\n| defaultRoutePath | string | '/' | Default route path after successful login. |\n| title | string | 'Sigin' | Title for the login view. |\n| hello | string | 'Hello นี้คือระบบล็อกอิน แบบง่าย' | Welcome message for the login view. |\n| customRouteMeta | object | {} | Custom meta data to be added to the login route. |\n| loginRouterView | RouteRecordRaw \\| undefined \\| null \\| any | null | Custom route view component for the login page. |\n\n\n## CHANGELOG\nSee [CHANGELOG.md](CHANGELOG.md) for more information.\n","readmeFilename":"README.md"}