
kit-jwt v2026.7.12
Kit के लिए JSON Web Token (JWT) एन्कोडिंग और डिकोडिंग
kit-jwt
JSON Web Token (JWT) एन्कोडिंग और डिकोडिंग Kit के लिए
[TOC]
फ़ाइलें
| फ़ाइल | विवरण |
|---|---|
.editorconfig | संपादक स्वरूपण कॉन्फ़िगरेशन |
.gitignore | बिल्ड आर्टिफैक्ट और निर्भरताओं के लिए Git अनदेखा नियम |
.tool-versions | asdf टूल वर्शन (Zig, Kit) |
LICENSE | MIT लाइसेंस फ़ाइल |
README.md | यह फ़ाइल |
examples/basic.kit | बुनियादी HS256 उपयोग उदाहरण |
kit.toml | मेटाडेटा, क्षमताओं और निर्भरताओं के साथ पैकेज मैनिफ़ेस्ट |
src/jwt.kit | JWT एन्कोडिंग, डिकोडिंग, सत्यापन और सहायक API |
zig/jwt_rsa.zig | OpenSSL-समर्थित RSA हस्ताक्षर और सत्यापन ब्रिज |
zig/kit_ffi.zig | RSA ब्रिज द्वारा उपयोग किए जाने वाले Kit Zig FFI मान हेल्पर |
tests/hs256.test.kit | सक्रिय HS256 व्यवहार परीक्षण |
tests/types.test.kit | त्रुटि, प्रकार, एल्गोरिदम और दावा-आकार परीक्षण |
tests/rs256.kit.disabled | वैकल्पिक RS256 व्यवहार परीक्षण |
tests/rs384.kit.disabled | वैकल्पिक RS384 व्यवहार परीक्षण |
tests/rs512.kit.disabled | वैकल्पिक RS512 व्यवहार परीक्षण |
निर्भरताएँ
- Kit पैकेज निर्भरता:
crypto - Kit मानक मॉड्यूल:
Encoding.Base64 - नेटिव लाइब्रेरी: RS256, RS384 और RS512 हेल्पर्स के लिए OpenSSL
libcrypto - आवश्यक क्षमता:
ffi
पैकेज को ffi-zig के रूप में घोषित किया गया है क्योंकि RSA हस्ताक्षर और सत्यापन zig/jwt_rsa.zig का उपयोग करते हैं। HS256 crypto.hmac-sha256 का उपयोग करता है।
स्थापना
kit add gitlab.com/kit-lang/packages/kit-jwt.git
उपयोग
import Kit.Jwt as JWT
main = fn =>
secret = "my-super-secret-key-at-least-32-chars"
claims = "{\"sub\":\"user123\",\"name\":\"John Doe\",\"admin\":true,\"iat\":1700000000}"
match JWT.encode claims secret
| Err e ->
println "Failed to create token:"
println e
| Ok token ->
println "JWT:"
println token
if JWT.verify? token secret then
println "Token is valid"
else
println "Token is invalid"
match JWT.decode token secret
| Ok decoded ->
println "Header:"
println decoded.header
println "Payload:"
println decoded.payload
| Err e ->
println "Decode failed:"
println e
main
समर्थित हस्ताक्षर और सत्यापन सहायक:
| एल्गोरिदम | सहायक |
|---|---|
| HS256 | encode, encode-with-header, decode, verify? |
| RS256 | encode-rs256, decode-rs256, verify-rs256?, get-claims-rs256 |
| RS384 | encode-rs384, decode-rs384, verify-rs384?, get-claims-rs384 |
| RS512 | encode-rs512, decode-rs512, verify-rs512?, get-claims-rs512 |
असुरक्षित निरीक्षण सहायक टोकन को सत्यापित किए बिना डीबग करने के लिए भी उपलब्ध हैं:
decode-unsafeget-claims-unsafeget-header-unsafe
अधिकार निर्णयों के लिए असुरक्षित सहायकों का उपयोग न करें।
विकास
उदाहरण चलाना
इंटरप्रेटर के साथ बुनियादी उदाहरण चलाएँ:
kit run examples/basic.kit --allow=ffi
उदाहरण को नेटिव बाइनरी में कंपाइल करें:
kit build examples/basic.kit --allow=ffi && ./basic
परीक्षण चलाना
सक्रिय परीक्षण सूट चलाएँ:
kit test --allow=ffi
कवरेज के साथ सक्रिय परीक्षण सूट चलाएँ:
kit test --coverage --allow=ffi
वैकल्पिक RSA परीक्षण फ़ाइलों को सीधे चलाएँ:
kit test tests/rs256.kit.disabled --allow=ffi
kit test tests/rs384.kit.disabled --allow=ffi
kit test tests/rs512.kit.disabled --allow=ffi
kit dev चलाना
मानक विकास कार्यप्रवाह चलाएँ (फ़ॉर्मेट, जाँच, परीक्षण):
kit dev
यह करेगा:
- Kit स्रोत और उदाहरण फ़ाइलों का फ़ॉर्मेटिंग जाँचें
- स्रोत और उदाहरणों का प्रकार जाँचें
- कवरेज के साथ सक्रिय परीक्षण चलाएँ
समता जाँच चलाना
उदाहरणों के लिए इंटरप्रेटर/कंपाइलर समता जाँच चलाएँ:
kit parity --failures-only
समता जाँच सुनिश्चित करती है कि उदाहरण इंटरप्रेटर से चलते हैं, सफलतापूर्वक कंपाइल होते हैं, सफलतापूर्वक निष्पादित होते हैं, और मेल खाने वाला आउटपुट उत्पन्न करते हैं।
दस्तावेज़ीकरण उत्पन्न करना
दस्तावेज़ टिप्पणियों से API दस्तावेज़ीकरण उत्पन्न करें:
kit doc src/jwt.kit
नोट: दस्तावेज़ टिप्पणियों (##) वाले Kit स्रोत HTML दस्तावेज़ीकरण उत्पन्न करते हैं।
बिल्ड आर्टिफैक्ट साफ़ करना
उत्पन्न फ़ाइलें, कैश और बिल्ड आर्टिफैक्ट हटाएँ:
kit task clean
नोट: kit.toml में परिभाषित।
स्थानीय स्थापना
इस पैकेज को विकास के लिए स्थानीय रूप से स्थापित करने के लिए:
kit install
यह पैकेज को ~/.kit/packages/@kit/jwt/ में स्थापित करता है, जिससे यह अन्य प्रोजेक्ट्स में Kit.Jwt के रूप में आयात करने के लिए उपलब्ध हो जाता है।
सुरक्षा नोट्स
- मजबूत, यादृच्छिक HS256 रहस्य का उपयोग करें। न्यूनतम 256 बिट्स अनुशंसित है।
- निजी कुंजियाँ या उत्पादन JWT रहस्य कभी कमिट न करें।
- डिकोडिंग के बाद
exp,nbf,iat,issऔरaudजैसे एप्लिकेशन क्लेम मान्य करें। - अल्पकालिक टोकन पसंद करें और अपने एप्लिकेशन के खतरे मॉडल के अनुसार कुंजियाँ रोटेट करें।
- जब भी नेटवर्क पर JWT प्रेषित करें तो HTTPS का उपयोग करें।
लाइसेंस
यह पैकेज MIT लाइसेंस के तहत जारी किया गया है - विवरण के लिए LICENSE देखें।