コード例 #1
0
 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));
 }
コード例 #2
0
ファイル: OnStarClient.cs プロジェクト: BrendanGrant/NOnStar
        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}");
            }
        }