locked
How to get id exist inside user object in claim on jwt ? RRS feed

  • Question

  • User696604810 posted

    i work on asp.net core 2.2

    i have access token encrypted and i need to get id o user from it

    so that i do following code

    var handler = new JwtSecurityTokenHandler();
                    var jsonToken = handler.ReadJwtToken(AccessToken);
              
                    var user = jsonToken.Claims.First(claim => claim.Type == "user").Value;

    result of  jsonToken = {{"alg":"none","typ":"JWT"}.{"user":{"id":"Admin"}}}

    this line of code exist below 

    var user = jsonToken.Claims.First(claim => claim.Type == "user").Value;

    return {"id":"admin"}

    i need to get value of id meaning i need to return Admin

    how to do that please ?

    Tuesday, September 10, 2019 4:39 AM

Answers

  • User711641945 posted

    Hi ahmebarbary,

    You could modify like below to get the data:

    var obj = JObject.Parse(user);
    var id = obj.Children().Children().First().ToString();

    Best Regards,

    Rena

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Wednesday, September 11, 2019 1:44 AM

All replies

  • User711641945 posted

    Hi ahmedbarbary,

    You could convert user string to JObject and get the children like below:

    var user = jsonToken.Claims.First(claim => claim.Type == "user").Value;
    var obj = JObject.Parse(user);
    var id = obj.Children().Children();

    Best Regards,

    Rena

    Tuesday, September 10, 2019 7:18 AM
  • User696604810 posted

    thank you for reply 

    it not give me value it give me id only

    i need value of id that represent Admin

    when debug the result of last line of var id is

    id = {Newtonsoft.Json.Linq.JEnumerable<Newtonsoft.Json.Linq.JToken>}

    Tuesday, September 10, 2019 1:18 PM
  • User696604810 posted

    i modify that 

    i make 

    var id  = obj.Children().Children()[0].Value<string>();

    i get exception source must be jtoken

    Tuesday, September 10, 2019 1:34 PM
  • User711641945 posted

    Hi ahmebarbary,

    You could modify like below to get the data:

    var obj = JObject.Parse(user);
    var id = obj.Children().Children().First().ToString();

    Best Regards,

    Rena

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Wednesday, September 11, 2019 1:44 AM