トークンを手動で作成することができ、その時点でトークンにクレームを追加してクライアントに戻すことができます。クライアントがサーバーに要求すると、トークンからクレームを抽出し、デバイスの種類を決定することができます。
以下のようなトークンを作成します。
var identity = new ClaimsIdentity(Startup.OAuthOptions.AuthenticationType);
AuthenticationTicket ticket = new AuthenticationTicket(identity, new AuthenticationProperties());
var currentUtc = new SystemClock().UtcNow;
identity.AddClaim(new Claim("device_type", "android/ios/web"));
ticket.Properties.IssuedUtc = currentUtc;
var expiryInterval = int.Parse("20");
var access_token = Startup.OAuthOptions.AccessTokenFormat.Protect(ticket);
アクセス要求におけるトークンとトークンからの請求を下記の通り:
ClaimsPrincipal principal = Request.GetRequestContext().Principal as ClaimsPrincipal;
var customClaimValue = principal.Claims.Where(c => c.Type == "device_type").Single().Value;
は「customClaimValueは」使用中のデバイスの種類を持っている必要があります。
まだ結論に達していませんか? –
あなたが提案した実装を開始しました。すぐに更新されます。副メモでは、サインアウトのために、クライアント側でトークンを忘れてしまうと言う人がいます。これ以上安全な方法はありますか? – HSharma
クライアント側でトークンを忘れるのは良い方法です。その設定とは別に、サーバーでのトークンの有効期限が短くなるほど良いでしょう。 –