public static JwtBuilder AddClaims(this JwtBuilder builder, PinAuth pinPayload) { return(builder .AddClaim("client_id", pinPayload.client_id) .AddClaim("device_id", pinPayload.device_id) .AddClaim("credential", pinPayload.credential) .AddClaim("credential_type", pinPayload.credential_type) .AddClaim("nonce", pinPayload.nonce) .AddClaim("timestamp", pinPayload.timestamp) .AddClaim("scope", pinPayload.scope)); }
private async Task Upgrade() { var pinPayload = new PinAuth() { client_id = ClientId, credential = pin, device_id = DeviceId }; var pinToken = new JwtBuilder() .WithAlgorithm(new HMACSHA256Algorithm()) .AddClaims(pinPayload) .WithSecret(JwtSecretKey) .Build(); var pinUpgradeResult = await client.PostAsync("https://api.gm.com/api/v1/oauth/token/upgrade", new StringContent(pinToken)); var pinUpgradeResultStr = await pinUpgradeResult.Content.ReadAsStringAsync(); if (pinUpgradeResultStr != string.Empty) { var errorMessage = JsonConvert.DeserializeObject <UpgradeError>(pinUpgradeResultStr); throw new InvalidOperationException($"{errorMessage.Error} - {errorMessage.Description}"); } }