2016-07-12 12 views
19

मुझे समझ में नहीं आता कि यह पुस्तकालय कैसे काम करता है। क्या आप कृपया मेरी मदद कर सकते हैं ?जेडब्ल्यूटी टोकन को डीकोड कैसे करें?

public void TestJwtSecurityTokenHandler() 
    { 
     var stream = 
      "eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJJU1MiLCJzY29wZSI6Imh0dHBzOi8vbGFyaW0uZG5zY2UuZG91YW5lL2NpZWxzZXJ2aWNlL3dzIiwiYXVkIjoiaHR0cHM6Ly9kb3VhbmUuZmluYW5jZXMuZ291di5mci9vYXV0aDIvdjEiLCJpYXQiOiJcL0RhdGUoMTQ2ODM2MjU5Mzc4NClcLyJ9"; 
     var handler = new JwtSecurityTokenHandler(); 

     var jsonToken = handler.ReadToken(stream); 
    } 

यह त्रुटि है:

यहाँ मेरी सरल कोड है

स्ट्रिंग कॉम्पैक्ट JSON प्रारूप, फार्म की है, जिसमें होने की जरूरत है: Base64UrlEncodedHeader.Base64UrlEndcodedPayload.OPTIONAL, Base64UrlEncodedSignature '।

आप jwt.io website में धारा कॉपी करते हैं, यह ठीक :)

धन्यवाद अग्रिम में आपकी मदद के लिए काम करता है!

var tokenS = handler.ReadToken(tokenJwtReponse.access_token) as JwtSecurityToken; 

बाद मैं जैसे दावा प्राप्त कर सकते हैं:

+1

जेडब्ल्यूटी, कब साइट यह डीकोड, लेकिन कोई हस्ताक्षर है तो यह अमान्य है। – Crowcoder

+0

सिस्टम का उपयोग करके जेडब्ल्यूटी टोकन को डीकोडिंग और सत्यापित करना। इडेंटिटीमोडेल.Tokens.Jwt] (https://stackoverflow.com/questions/18677837/decoding-and-verifying-jwt-token-using-system-identitymodel-tokens- jwt) –

+0

@MichaelFreidgeim आप सही हैं यह डुप्लिकेट प्रश्न है ... लेकिन उत्तर लाइब्रेरी के कारण उत्तर अलग हैं – Cooxkie

उत्तर

32

मैं समाधान नहीं मिला, मैं सिर्फ पालन परिणाम कास्ट करने के लिए याद किया

var jti = tokenS.Claims.First(claim => claim.Type == "jti").Value; 
+0

मुझे पहले दावाों की सूची के रूप में टोकन एस। क्लाइम्स डालना पड़ा। '(सूची ) टोकन एसक्लाइम्स) .एच (ए => कंसोल। राइटलाइन (ए। टाइप। टोस्टिंग() +" "+ ए। वैल्यू));' –

+0

पंजीकृत दावों के लिए आप सीधे संपत्ति मूल्य प्राप्त कर सकते हैं 'JwtSecurityToken' से बाहर। उदाहरण के लिए, 'tokenS.Id' आपको jti value – user875318

+0

मिल जाएगा आप यह भी कर सकते हैं: हैंडलर। ReadJwtToken (tokenJwtReponse.access_token); –

संबंधित मुद्दे