2017-05-08 11 views
1

私は正確な答えを探してきましたが、ほとんどの答えはクライアントの呼び出しであり、範囲外です。トークンからクレームを抽出して取得する方法は?

質問:私はすでにアクセストークンアクセストークンを持っています。どのようにアクセストークンを与えられただけのC#コードを使用してクレームを取得するには?

私は次のように思っています。下記の質問は同じですが、答えはありません。

How to get the claims out of a authenticated SecurityToken

How do I read claims from my Oauth token?

+0

:あなたは、サーバー上で、唯一の彼のベアラトークン指定されたユーザーの主張を確認したいですか? –

+0

はい、それは可能でしょうか? – user1960948

+0

これはどうですか? http://stackoverflow.com/questions/26357054/return-more-info-to-the-client-using-oauth-bearer-tokens-generation-and-owin-in –

答えて

1

インストール・パッケージNewtonsoft.Json

をアクセストークンだけでエンコードされたJSONをbase64です。

 string token = 
      "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"; 
     var parts = token.Split('.'); 
     var decoded = Convert.FromBase64String(parts[1]); 
     var part = Encoding.UTF8.GetString(decoded); 
     var jwt = JObject.Parse(part); 
     var name = jwt["name"].Value<string>(); 

を次のようにあなたはトークンを解析することができ、クライアントにアクセストークンを解析UPDATE

  1. は、アクセストークン が唯一のリソースサーバ上で解析されるべき、推奨されません。
  2. にトークンが改ざんされていないことを確認するには、リソースサーバー上のアクセストークンを検証する必要があります。
  3. ほとんどの場合、上記のようにトークンを解析する必要はありません。 推奨JWTライブラリを使用して、検証と解析の両方を行います。例えば明確にするため

    app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());

関連する問題