2017-01-31 7 views
0

Web Api 2を使用しており、カスタムトークンベースの認証を実装しています。それは正常に動作していますが、私は応答でいくつかの追加のプロパティ値を取得したい。私は新しいクレームを追加し、新しいプロパティを追加して応答でそれらの値を取得しましたが、私はまだ「access_token」、「token_type」、「expires_in」という3つの値しか返していません。どのようにしてより多くの値を得ることができますか? これは私のコードです: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は"

{ 

を取得しています出力されます: "XXXXX"、 "TOKEN_TYPE": "無記名"、 を " expires_in ":86399 }

+0

** GrantResourceOwnerCredentials ** – Aravind

+0

@AravindパブリッククラスAuthorizationServerProvider:OAuthAuthorizationServerProvider {} ----- –

答えて

0

追加のクレームとプロパティは追加のフィールドとして表示されるはずですレスポンスではなく、access_token自体にエンコードされています。 JWT(JSON Webトークン)を使用している場合は、生成されたトークンの内容をhttps://jwt.io/ に表示することができます。左側のウィンドウにトークンを貼り、右側のすべてのクレームを含むデコードされたトークンを確認してください。クラスは、このメソッドが含まれている

+0

はいあなたは正しいです、トークン自体でこれらが表示されます。 –

関連する問題