2017-01-31 5 views
0

Я использую Web Api 2 и реализовал аутентификацию на основе аутентификации на основе токенов. Он работает нормально, но я хочу получить несколько дополнительных значений свойств в ответ. Несмотря на то, что я добавил новые претензии, а также добавил новые свойства, чтобы получить их значения в ответ, но я все еще получаю только три значения в ответе, которые являются «access_token», «token_type» и «expires_in». Как я могу получить больше значений в ответ. Это мой код:Невозможно получить доступ к дополнительным данным с токеном в аутентификации Web api 2

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) 
    { 
     if(context.UserName == "user" && context.Password=="user") 
     { 
      var identity = new ClaimsIdentity(context.Options.AuthenticationType); 
      identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName)); 
      identity.AddClaim(new Claim(ClaimTypes.Role, "Administrators")); 

      identity.AddClaim(new Claim("MyClaim", "I don't know")); 

      var props = new AuthenticationProperties(new Dictionary<string, string> 
      { 
       { "name", "John" }, 
       { "surname", "Smith" }, 
       { "age", "40" }, 
       { "gender", "Male" } 
      }); 

      var ticket = new AuthenticationTicket(identity, props); 
      context.Validated(ticket); 
     } 
     else 
     { 
      context.SetError("Invalid_Grant", "Provided username and password is incorrect"); 
      return; 
     } 
    } 

Это выход я получаю

{ 

"access_token": "ххххх", "token_type": "знаменосец", " expires_in ": 86399 }

+0

, какой класс содержит этот метод ** GrantResourceOwnerCredentials ** – Aravind

+0

класс AuthorizationServerProvider @Aravind общественности: OAuthAuthorizationServerProvider {-----} –

ответ

0

дополнительные претензии и свойства не должны отображаться как дополнительные поля в ответе, но закодированы в самом access_token. Если вы используете JWT (JSON Web Tokens), вы можете просмотреть содержимое сгенерированного токена по адресу https://jwt.io/ Просто вставьте маркер в левое окно и увидите декодированный токен, включая все ваши претензии справа.

+0

Да, вы правы, эти появляется в самой лексемы. –

Смежные вопросы