Files
2026-06-02 20:48:16 +03:30

61 lines
1.9 KiB
C#

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;
}
}
}