Beispiel #1
0
        /// <summary>
        /// This method is for bulding signed JWT token.
        /// </summary>
        /// <param name="input">InitializeTransactionInput</param>
        /// <returns></returns>
        private string BuildIdToken(InitializeTransactionInput input)
        {
            IList <Claim> claims = new List <Claim>();

            claims.Add(new Claim(Constants.IdTokenClaims.ObjectId, input.ObjectId, ClaimValueTypes.String, appSettings.IdTokenIssuer));

            var token = new JwtSecurityToken(
                appSettings.IdTokenIssuer,
                appSettings.IdTokenAudience,
                claims,
                DateTime.Now,
                DateTime.Now.AddDays(7),
                SigningCredentials.Value);

            var jwtHandler = new JwtSecurityTokenHandler();

            return(jwtHandler.WriteToken(token));
        }
Beispiel #2
0
        public async Task <IActionResult> InitializeTransaction(InitializeTransactionInput input)
        {
            if (input == null || !input.Validate())
            {
                return(Conflict(new B2CErrorResponseContent("Cannot deserialize input claims")));
            }

            var jumioInput = new
            {
                customerInternalReference = input.CorrelationId,
                userReference             = input.ObjectId,
                successUrl = BuidLink(input)
            };

            var response = await httpService.PostAsync <InitializeTransactionOutput>($"{jumioSettings.BaseUrl}/api/v4/initiate", jumioInput);

            if (!response.Status)
            {
                return(Conflict(new B2CErrorResponseContent(response.Message)));
            }

            return(Ok(response.Data));
        }
Beispiel #3
0
 /// <summary>
 /// This method is for bulding success url for jumio
 /// </summary>
 /// <param name="input">InitializeTransactionInput</param>
 /// <returns></returns>
 private string BuidLink(InitializeTransactionInput input)
 {
     return($"{appSettings.BaseRedirectUrl}/{input.Policy}/oauth2/v2.0/authorize?client_id={input.ClientId}" +
            $"&redirect_uri={input.RedirectUri}&scope={input.Scope}&response_type=id_token&id_token_hint={BuildIdToken(input)}");
 }