예제 #1
0
        public async Task <ShareUrlResult> CreateShareURLAsync(string sdkId, AsymmetricCipherKeyPair keyPair, Uri apiUrl, DynamicScenario dynamicScenario)
        {
            ShareUrlResult result = await Task.Run(async() => await DynamicSharingService.CreateShareURL(
                                                       _httpClient, apiUrl, sdkId, keyPair, dynamicScenario).ConfigureAwait(false))
                                    .ConfigureAwait(false);

            return(result);
        }
예제 #2
0
        public IActionResult DBSStandard()
        {
            try
            {
                string yotiKeyFilePath = Environment.GetEnvironmentVariable("YOTI_KEY_FILE_PATH");
                _logger.LogInformation(
                    string.Format(
                        "yotiKeyFilePath='{0}'",
                        yotiKeyFilePath));

                StreamReader privateKeyStream = System.IO.File.OpenText(yotiKeyFilePath);

                var yotiClient = new YotiClient(_clientSdkId, privateKeyStream);

                DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder()
                                              .WithIdentityProfileRequirements(new
                {
                    trust_framework = "UK_TFIDA",
                    scheme          = new
                    {
                        type      = "DBS",
                        objective = "BASIC"
                    }
                }).Build();

                var dynamicScenario = new DynamicScenarioBuilder()
                                      .WithCallbackEndpoint("/account/connect")
                                      .WithPolicy(dynamicPolicy)
                                      .WithSubject(new
                {
                    subject_id = "some_subject_id_string"
                })
                                      .Build();
                ShareUrlResult shareUrlResult = yotiClient.CreateShareUrl(dynamicScenario);

                ViewBag.YotiClientSdkId = _clientSdkId;

                return(View("DBSCheck", shareUrlResult));
            }
            catch (Exception e)
            {
                _logger.LogError(
                    exception: e,
                    message: e.Message);

                TempData["Error"]          = e.Message;
                TempData["InnerException"] = e.InnerException?.Message;
                return(RedirectToAction("Error", "Account"));
            }
        }
예제 #3
0
        public IActionResult DynamicScenario()
        {
            try
            {
                string yotiKeyFilePath = Environment.GetEnvironmentVariable("YOTI_KEY_FILE_PATH");
                _logger.LogInformation(
                    string.Format(
                        "yotiKeyFilePath='{0}'",
                        yotiKeyFilePath));

                StreamReader privateKeyStream = System.IO.File.OpenText(yotiKeyFilePath);

                var yotiClient = new YotiClient(_clientSdkId, privateKeyStream);

                var givenNamesWantedAttribute = new WantedAttributeBuilder()
                                                .WithName("given_names")
                                                .Build();

                DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder()
                                              .WithWantedAttribute(givenNamesWantedAttribute)
                                              .WithFullName()
                                              .WithSelfie()
                                              .WithPhoneNumber()
                                              .WithAgeOver(18)
                                              .WithRememberMeId(true)
                                              .Build();

                var dynamicScenario = new DynamicScenarioBuilder()
                                      .WithCallbackEndpoint("/account/connect")
                                      .WithPolicy(dynamicPolicy)
                                      .Build();
                ShareUrlResult shareUrlResult = yotiClient.CreateShareUrl(dynamicScenario);

                ViewBag.YotiClientSdkId = _clientSdkId;

                return(View("DynamicScenario", shareUrlResult));
            }
            catch (Exception e)
            {
                _logger.LogError(
                    exception: e,
                    message: e.Message);

                TempData["Error"]          = e.Message;
                TempData["InnerException"] = e.InnerException?.Message;
                return(RedirectToAction("Error", "Account"));
            }
        }
예제 #4
0
        public async Task CreateShareURLAsyncShouldReturnCorrectValues()
        {
            string shareUrl = @"https://yoti.com/shareurl";
            string refId    = "NpdmVVGC-28356678-c236-4518-9de4-7a93009ccaf0-c5f92f2a-5539-453e-babc-9b06e1d6b7de";

            Mock <HttpMessageHandler> handlerMock = SetupMockMessageHandler(
                HttpStatusCode.OK,
                "{\"qrcode\":\"" + shareUrl + "\",\"ref_id\":\"" + refId + "\"}");

            var             engine          = new YotiClientEngine(new HttpClient(handlerMock.Object));
            DynamicScenario dynamicScenario = TestTools.ShareUrl.CreateStandardDynamicScenario();

            ShareUrlResult shareUrlResult = await engine.CreateShareURLAsync(SdkId, _keyPair, new Uri(Constants.Api.DefaultYotiApiUrl), dynamicScenario);

            Assert.IsNotNull(shareUrlResult);
            Assert.AreEqual(new Uri(shareUrl), shareUrlResult.Url);
            Assert.AreEqual(refId, shareUrlResult.RefId);
        }