public async Task <ResponseWithHeaders <StsTokenResponseMessage, MixedRealityStsGetTokenHeaders> > GetTokenAsync(Guid accountId, MixedRealityTokenRequestOptions tokenRequestOptions = null, CancellationToken cancellationToken = default) { using var message = CreateGetTokenRequest(accountId, tokenRequestOptions); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); var headers = new MixedRealityStsGetTokenHeaders(message.Response); switch (message.Response.Status) { case 200: { StsTokenResponseMessage value = default; using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false); value = StsTokenResponseMessage.DeserializeStsTokenResponseMessage(document.RootElement); return(ResponseWithHeaders.FromValue(value, headers, message.Response)); }
/// <summary> /// Converts an <see cref="StsTokenResponseMessage"/> to an <see cref="AccessToken"/>. /// </summary> /// <param name="stsTokenResponseMessage">The STS token response message.</param> /// <returns><see cref="AccessToken"/>.</returns> public static AccessToken ToAccessToken(this StsTokenResponseMessage stsTokenResponseMessage) { DateTimeOffset tokenExpiration = JwtHelper.RetrieveTokenExpiration(stsTokenResponseMessage.AccessToken); return(new AccessToken(stsTokenResponseMessage.AccessToken, tokenExpiration)); }