61 lines
1.9 KiB
C#
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;
|
|
}
|
|
|
|
}
|
|
|
|
}
|