public DateTime Get(bool hasLongTimeToLive) { var now = _nowProvider.Now(); if (hasLongTimeToLive) { return(now.AddDays(_options.ExpireDaysLongToken)); } return(now.AddMinutes(_options.ExpireMinutesShortToken)); }
public async Task AcceptAsync(Guid securityUserId) { using (var context = _contextFactory()) using (var _securityUserProvider = _securityUserProviderFactory(context)) { var securityUser = await _securityUserProvider.GetByIdAsync(securityUserId); securityUser.ToSAcceptedDate = _nowProvider.Now(); context.Update(securityUser); await context.SaveChangesAsync(); } }
public async Task <bool> IsValidAsync(string validationToken) { if (string.IsNullOrEmpty(validationToken)) { return(false); } var uri = _options.ValidatorUrl; var ip = _contextAccessor.HttpContext.Connection.RemoteIpAddress.ToString(); var formContent = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("secret", _options.Secret), new KeyValuePair <string, string>("response", validationToken), new KeyValuePair <string, string>("remoteip", ip) }); using (var client = _httpClientProviderFactory()) using (var res = await client.PostAsync(uri, formContent)) using (var content = res.Content) { var data = await content.ReadAsStringAsync(); if (data != null) { var response = (JObject)JsonConvert.DeserializeObject(data); var timestamp = response["challenge_ts"]; if (timestamp == null) { return(false); } var dateTime = timestamp.Value <DateTime>(); if ((_nowProvider.Now().ToUniversalTime() - dateTime.ToUniversalTime()).TotalMinutes > _tokenLifespan) { return(false); } var success = response["success"]; return(success != null && success.Value <bool>()); } } return(false); }