/// <summary> /// Verify a token with authy /// </summary> /// <param name="userId">The Authy user id</param> /// <param name="token">The token to verify</param> /// <param name="force">Force verification to occur even if the user isn't registered (if the user hasn't finished registering the deefault is to succesfully validate)</param> public VerifyTokenResult VerifyToken(string userId, string token, bool force = false) { if (!AuthyHelpers.TokenIsValid(token)) { var errors = new Dictionary <string, string> { { "token", "is invalid" } }; return(new VerifyTokenResult() { Status = AuthyStatus.BadRequest, Success = false, Message = "Token is invalid.", Errors = errors }); } token = AuthyHelpers.SanitizeNumber(token); userId = AuthyHelpers.SanitizeNumber(userId); var url = $"{BaseUrl}/protected/json/verify/{token}/{userId}?api_key={_apiKey}{(force ? "&force=true" : string.Empty)}"; return(Execute(client => { var response = client.DownloadString(url); var apiResponse = JsonConvert.DeserializeObject <VerifyTokenResult>(response); if (apiResponse.Token == "is valid") { apiResponse.Status = AuthyStatus.Success; } else { apiResponse.Success = false; apiResponse.Status = AuthyStatus.Unauthorized; } apiResponse.RawResponse = response; return apiResponse; })); }