
Kit के लिए JSON Web Token (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 व्यवहार परीक्षण |
cryptoEncoding.Base64libcryptoffiपैकेज को 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 parity --failures-only
समता जाँच सुनिश्चित करती है कि उदाहरण इंटरप्रेटर से चलते हैं, सफलतापूर्वक कंपाइल होते हैं, सफलतापूर्वक निष्पादित होते हैं, और मेल खाने वाला आउटपुट उत्पन्न करते हैं।
दस्तावेज़ टिप्पणियों से API दस्तावेज़ीकरण उत्पन्न करें:
kit doc src/jwt.kit
नोट: दस्तावेज़ टिप्पणियों (##) वाले Kit स्रोत HTML दस्तावेज़ीकरण उत्पन्न करते हैं।
उत्पन्न फ़ाइलें, कैश और बिल्ड आर्टिफैक्ट हटाएँ:
kit task clean
नोट: kit.toml में परिभाषित।
इस पैकेज को विकास के लिए स्थानीय रूप से स्थापित करने के लिए:
kit install
यह पैकेज को ~/.kit/packages/@kit/jwt/ में स्थापित करता है, जिससे यह अन्य प्रोजेक्ट्स में Kit.Jwt के रूप में आयात करने के लिए उपलब्ध हो जाता है।
exp, nbf, iat, iss और aud जैसे एप्लिकेशन क्लेम मान्य करें।यह पैकेज MIT लाइसेंस के तहत जारी किया गया है - विवरण के लिए LICENSE देखें।