using Complex.Domain.Entities; using Microsoft.EntityFrameworkCore; namespace Complex.Application.PersonService { public interface IUserTokenService { bool CheckExistToken(string Token); void DeleteToken(string RefreshToken); UserToken FindRefreshToken(string RefreshToken); void SaveToken(UserToken userToken); } public class UserTokenService : IUserTokenService { private IComplexDBContext _complexDBContext; public UserTokenService(IComplexDBContext complexDBContext) { _complexDBContext = complexDBContext; } public void SaveToken(UserToken userToken) { _complexDBContext.UserTokens.Add(userToken); _complexDBContext.SaveChanges(); } public UserToken FindRefreshToken(string RefreshToken) { //SecurityHelper securityHelper = new SecurityHelper(); string RefreshTokenHash = RefreshToken; //string RefreshTokenHash = securityHelper.Getsha256Hash(RefreshToken); var usertoken = _complexDBContext.UserTokens.Include(p => p.Person) .SingleOrDefault(p => p.RefreshToken == RefreshTokenHash); return usertoken; } public void DeleteToken(string RefreshToken) { var token = FindRefreshToken(RefreshToken); if (token != null) { _complexDBContext.UserTokens.Remove(token); _complexDBContext.SaveChanges(); } } public bool CheckExistToken(string Token) { //SecurityHelper securityHelper = new SecurityHelper(); string tokenHash = Token; //securityHelper.Getsha256Hash(Token); var userToken = _complexDBContext.UserTokens.Where(p => p.TokenHash == tokenHash).FirstOrDefault(); return userToken == null ? false : true; } } }