/トークンからの応答は次のようになりますペイロードを返します。Web Apiベアラートークンの名前を ".expires"キーに変更する方法はありますか。
"access_token":"foo",
"token_type":"bearer",
"expires_in":59,
"refresh_token":"bar",
".issued":"Sat, 17 Sep 2016 00:13:21 GMT",
".expires":"Sat, 17 Sep 2016 00:14:21 GMT"
は.issued理由があると彼ら彼らは道の名前.expired?これらは有効なJavaScriptプロパティではないため、名前を変更します。そこにあれば、このようTokenEndpoint
メソッドをオーバーライドする以外に、これを行うために、よりエレガントな方法:
public override Task TokenEndpoint(OAuthTokenEndpointContext context)
{
foreach (KeyValuePair<string, string> property in context.Properties.Dictionary)
{
string key = property.Key;
switch (key)
{
case ".expires":
key = "expires";
break;
case ".issued":
key = "issued";
break;
}
context.AdditionalResponseParameters.Add(key, property.Value);
}
return Task.FromResult<object>(null);
}
私はこれをしたい理由の一例。私は、リクエストから受け取ると予想されるデータを模倣するTypeScriptインターフェイスを提供するのが好きです。この場合、私のインターフェイスは次のようになります。私のAPIでプロパティを変更することなく、
interface IToken {
.expires: string; // Not valid TypeScript
.issued: string; // Not valid TypeScript
access_token: string;
expires_in: number;
token_type: string;
refresh_token: string;
}
、私と私のAPIを使用して他の人がtokenVar[".expires"]
私はこれをやりたい理由の例を提供するために私の質問を編集しました。 –
はい、私はその部分を理解しましたが、あなたが既にやっていることについては、 'TokenEndpoint'を上書きすることが唯一の方法だと言いました。 –