Пример #1
0
        private string GetStatusMessage(CollectResponse collectResponse, BankIdLoginOptions unprotectedLoginOptions, HttpRequest request)
        {
            var authPersonalIdentityNumberProvided = PersonalIdentityNumberProvided(unprotectedLoginOptions);
            var detectedDevice           = _bankIdSupportedDeviceDetector.Detect(request.Headers["User-Agent"]);
            var accessedFromMobileDevice = detectedDevice.IsMobile;

            var messageShortName = _bankIdUserMessage.GetMessageShortNameForCollectResponse(collectResponse.GetCollectStatus(), collectResponse.GetCollectHintCode(), authPersonalIdentityNumberProvided, accessedFromMobileDevice);
            var statusMessage    = _bankIdUserMessageLocalizer.GetLocalizedString(messageShortName);

            return(statusMessage);
        }
        private string GetStatusMessage(CollectResponse collectResponse)
        {
            //TODO: Set these to correct values, might be provided from option / depending on what requirements are set
            var authPersonalIdentityNumberProvided = true;
            var accessedFromMobileDevice           = true;

            var messageShortName = _bankIdUserMessage.GetMessageShortNameForCollectResponse(collectResponse.Status, collectResponse.HintCode, authPersonalIdentityNumberProvided, accessedFromMobileDevice);
            var statusMessage    = _bankIdUserMessageLocalizer.GetLocalizedString(messageShortName);

            return(statusMessage);
        }
Пример #3
0
        private string GetStatusMessage(CollectResponse collectResponse, BankIdLoginOptions unprotectedLoginOptions, BankIdSupportedDevice detectedDevice)
        {
            var authPersonalIdentityNumberProvided = PersonalIdentityNumberProvided(unprotectedLoginOptions);
            var accessedFromMobileDevice           = detectedDevice.DeviceType == BankIdSupportedDeviceType.Mobile;
            var usingQrCode = unprotectedLoginOptions.UseQrCode;

            var messageShortName = _bankIdUserMessage.GetMessageShortNameForCollectResponse(
                collectResponse.GetCollectStatus(),
                collectResponse.GetCollectHintCode(),
                authPersonalIdentityNumberProvided,
                accessedFromMobileDevice,
                usingQrCode);
            var statusMessage = _bankIdUserMessageLocalizer.GetLocalizedString(messageShortName);

            return(statusMessage);
        }
Пример #4
0
        public static async Task <CollectResponse> CertAsync(string ssn, string ip)
        {
            setupClient();

            dynamic dynamicJson = new ExpandoObject();

            dynamicJson.endUserIp      = ip;
            dynamicJson.personalNumber = ssn;
            string json = "";

            json = Newtonsoft.Json.JsonConvert.SerializeObject(dynamicJson);
            var authResponse = await Request <AuthResponse>("https://appapi2.test.bankid.com/rp/v5.1/auth", json);

            CollectResponse collectResponse = new CollectResponse();
            dynamic         dynamicCollect  = new ExpandoObject();

            dynamicCollect.orderRef = authResponse.orderRef;
            string jsonCollect = "";

            jsonCollect = Newtonsoft.Json.JsonConvert.SerializeObject(dynamicCollect);
            bool initialPoll     = false;
            bool collectComplete = false;

            do
            {
                if (!initialPoll)
                {
                    Thread.Sleep(2000);
                }

                collectResponse =
                    await Request <CollectResponse>("https://appapi2.test.bankid.com/rp/v5.1/collect", jsonCollect);

                if (collectResponse.status == "complete")
                {
                    collectComplete = true;
                }

                initialPoll = true;
            } while (!collectComplete);

            return(collectResponse);
        }
        public async Task <CollectResponse> CollectAsync(CollectRequest request)
        {
            await SimulateResponseDelay().ConfigureAwait(false);

            if (!_auths.ContainsKey(request.OrderRef))
            {
                throw new BankIdApiException(ErrorCode.NotFound, "OrderRef not found");
            }

            var auth           = _auths[request.OrderRef];
            var status         = GetStatus(auth.CollectCalls);
            var hintCode       = GetHintCode(auth.CollectCalls);
            var completionData = GetCompletionData(status, auth.PersonalIdentityNumber);

            var response = new CollectResponse(status, hintCode)
            {
                OrderRef       = auth.OrderRef,
                CompletionData = completionData
            };

            auth.CollectCalls += 1;

            return(response);
        }
Пример #6
0
 private ActionResult CollectPending(CollectResponse collectResponse, string statusMessage)
 {
     _logger.BankIdCollectPending(collectResponse.OrderRef, collectResponse.GetCollectHintCode());
     return(Ok(BankIdLoginApiStatusResponse.Pending(statusMessage)));
 }
Пример #7
0
        private async Task <ActionResult> CollectComplete(BankIdLoginApiStatusRequest request, CollectResponse collectResponse)
        {
            _logger.BankIdCollectCompleted(collectResponse.OrderRef, collectResponse.CompletionData);
            await _bankIdResultStore.StoreCollectCompletedCompletionData(collectResponse.OrderRef, collectResponse.CompletionData);

            var returnUri = GetSuccessReturnUri(collectResponse.CompletionData.User, request.ReturnUrl);

            if (!Url.IsLocalUrl(returnUri))
            {
                throw new Exception(BankIdAuthenticationConstants.InvalidReturnUrlErrorMessage);
            }

            return(Ok(BankIdLoginApiStatusResponse.Finished(returnUri)));
        }
Пример #8
0
 private ActionResult CollectFailure(CollectResponse collectResponse, string statusMessage)
 {
     _logger.BankIdCollectFailure(collectResponse.OrderRef, collectResponse.GetCollectHintCode());
     return(BadRequest(new BankIdLoginApiErrorResponse(statusMessage)));
 }
        private async Task <ActionResult> CollectComplete(BankIdLoginApiStatusRequest request, CollectResponse collectResponse)
        {
            if (collectResponse.CompletionData == null)
            {
                throw new ArgumentNullException(nameof(collectResponse.CompletionData));
            }

            if (request.ReturnUrl == null)
            {
                throw new ArgumentNullException(nameof(request.ReturnUrl));
            }

            _logger.BankIdCollectCompleted(collectResponse.OrderRef, collectResponse.CompletionData);
            foreach (var bankIdResultStore in _bankIdResultStores)
            {
                await bankIdResultStore.StoreCollectCompletedCompletionData(collectResponse.OrderRef, collectResponse.CompletionData);
            }

            var returnUri = GetSuccessReturnUri(collectResponse.CompletionData.User, request.ReturnUrl);

            if (!Url.IsLocalUrl(returnUri))
            {
                throw new Exception(BankIdConstants.InvalidReturnUrlErrorMessage);
            }

            return(Ok(BankIdLoginApiStatusResponse.Finished(returnUri)));
        }
Пример #10
0
        private async Task <ActionResult> CollectPending(CollectResponse collectResponse, string statusMessage, BankIdSupportedDevice detectedDevice, BankIdLoginOptions loginOptions)
        {
            await _bankIdEventTrigger.TriggerAsync(new BankIdCollectPendingEvent(collectResponse.OrderRef, collectResponse.GetCollectHintCode(), detectedDevice, loginOptions));

            return(OkJsonResult(BankIdLoginApiStatusResponse.Pending(statusMessage)));
        }
Пример #11
0
        private async Task <ActionResult> CollectComplete(BankIdLoginApiStatusRequest request, CollectResponse collectResponse, BankIdSupportedDevice detectedDevice, BankIdLoginOptions loginOptions)
        {
            if (collectResponse.CompletionData == null)
            {
                throw new ArgumentNullException(nameof(collectResponse.CompletionData));
            }

            if (request.ReturnUrl == null)
            {
                throw new ArgumentNullException(nameof(request.ReturnUrl));
            }

            await _bankIdEventTrigger.TriggerAsync(new BankIdCollectCompletedEvent(collectResponse.OrderRef, collectResponse.CompletionData, detectedDevice, loginOptions));

            var returnUri = GetSuccessReturnUri(collectResponse.OrderRef, collectResponse.CompletionData.User, request.ReturnUrl);

            if (!Url.IsLocalUrl(returnUri))
            {
                throw new Exception(BankIdConstants.InvalidReturnUrlErrorMessage);
            }

            return(OkJsonResult(BankIdLoginApiStatusResponse.Finished(returnUri)));
        }
Пример #12
0
        private async Task <ActionResult> CollectFailure(CollectResponse collectResponse, string statusMessage, BankIdSupportedDevice detectedDevice, BankIdLoginOptions loginOptions)
        {
            await _bankIdEventTrigger.TriggerAsync(new BankIdCollectFailureEvent(collectResponse.OrderRef, collectResponse.GetCollectHintCode(), detectedDevice, loginOptions));

            return(BadRequestJsonResult(new BankIdLoginApiErrorResponse(statusMessage)));
        }
 private ActionResult CollectPending(CollectResponse collectResponse, string statusMessage)
 {
     _bankIdEventTrigger.TriggerAsync(new BankIdCollectPendingEvent(collectResponse.OrderRef, collectResponse.GetCollectHintCode()));
     return(OkJsonResult(BankIdLoginApiStatusResponse.Pending(statusMessage)));
 }
 private ActionResult CollectFailure(CollectResponse collectResponse, string statusMessage)
 {
     _bankIdEventTrigger.TriggerAsync(new BankIdCollectFailureEvent(collectResponse.OrderRef, collectResponse.GetCollectHintCode()));
     return(BadRequestJsonResult(new BankIdLoginApiErrorResponse(statusMessage)));
 }