Example #1
0
        public async Task <ActionResult> Verify()
        {
            string input = null;

            using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
            {
                input = await reader.ReadToEndAsync();
            }
            b2cUserModel inputClaims = b2cUserModel.Parse(input);

            string apiKey    = "your-apikey";
            string apiSecret = "your-apisecret";
            string id        = inputClaims.objectid;
            string tp        = inputClaims.typingPattern;
            int    count     = inputClaims.count;
            //string quality = "2";
            string base_url = string.Format("https://api.typingdna.com/verify/{0}", id);

            var response = await verifyUser(apiKey, apiSecret, base_url, tp);

            VerifyUser verifyUserResponse = VerifyUser.FromJson(response);
            bool       savePattern        = false;

            if (inputClaims.count > 0 && verifyUserResponse.NetScore >= 80)
            {
                savePattern = true;
            }

            bool promptMFAFlag = false;

            //training model
            if (inputClaims.count <= 2)// && verifyUserResponse.NetScore < 100)
            {
                promptMFAFlag = true;
            }
            // 3 - 10 saved patterns, less than 65 score prompt mfa
            if (inputClaims.count >= 3 && verifyUserResponse.NetScore <= 50 && inputClaims.count <= 5)
            {
                promptMFAFlag = true;
            }
            // 10 - 18 saved patterns, less than 70 score prompt mfa
            if (inputClaims.count > 5 && verifyUserResponse.NetScore <= 65)
            {
                promptMFAFlag = true;
            }

            outputModel output = new outputModel(string.Empty, HttpStatusCode.OK)
            {
                netscore          = verifyUserResponse.NetScore,
                promptMFA         = promptMFAFlag,
                saveTypingPattern = savePattern
            };

            return(Ok(output));
        }