private async Task <AuthResponse> Authenticate(Courier courier) { CourierToken token = await _context.CourierTokens.FirstOrDefaultAsync(tok => tok.CourierID == courier.ID); if (token == null) { token = new CourierToken { Value = Guid.NewGuid().ToString(), DateOfExpire = DateTime.Now.AddDays(3), Courier = courier, CourierID = courier.ID }; await _context.CourierTokens.AddAsync(token); await _context.SaveChangesAsync(); } else if (token.DateOfExpire < DateTime.Now) { token.Value = Guid.NewGuid().ToString(); token.DateOfExpire = DateTime.Now.AddDays(3); _context.CourierTokens.Update(token); await _context.SaveChangesAsync(); } return(new AuthResponse { Token = token.Value, Courier = courier }); }
private bool CheckToken(BaseRequest request, out CourierToken courierToken) { courierToken = _context.CourierTokens.FirstOrDefault(token => token.Value == request.Token); if (courierToken != null && courierToken.DateOfExpire > DateTime.Now) { return(true); } else { ModelState.AddModelError("error", "Токен недействителен"); return(false); } }