/// <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)); }
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)); }
/// <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)}"); }