Renamed to avoid confusion with domain model repositories
This commit is contained in:
@@ -3,7 +3,7 @@ using AipsCore.Domain.Models.User.ValueObjects;
|
||||
|
||||
namespace AipsCore.Application.Abstract.UserContext;
|
||||
|
||||
public interface IRefreshTokenRepository
|
||||
public interface IRefreshTokenManager
|
||||
{
|
||||
Task AddAsync(string token, UserId userId, CancellationToken cancellationToken = default);
|
||||
Task<RefreshToken> GetByValueAsync(string token, CancellationToken cancellationToken = default);
|
||||
@@ -9,18 +9,18 @@ namespace AipsCore.Application.Models.User.Command.LogIn;
|
||||
public class LogInUserCommandHandler : ICommandHandler<LogInUserCommand, LogInUserResultDto>
|
||||
{
|
||||
private readonly ITokenProvider _tokenProvider;
|
||||
private readonly IRefreshTokenRepository _refreshTokenRepository;
|
||||
private readonly IRefreshTokenManager _refreshTokenManager;
|
||||
private readonly IAuthService _authService;
|
||||
private readonly IUnitOfWork _unitOfWork;
|
||||
|
||||
public LogInUserCommandHandler(
|
||||
ITokenProvider tokenProvider,
|
||||
IRefreshTokenRepository refreshTokenRepository,
|
||||
IRefreshTokenManager refreshTokenManager,
|
||||
IAuthService authService,
|
||||
IUnitOfWork unitOfWork)
|
||||
{
|
||||
_tokenProvider = tokenProvider;
|
||||
_refreshTokenRepository = refreshTokenRepository;
|
||||
_refreshTokenManager = refreshTokenManager;
|
||||
_authService = authService;
|
||||
_unitOfWork = unitOfWork;
|
||||
}
|
||||
@@ -32,7 +32,7 @@ public class LogInUserCommandHandler : ICommandHandler<LogInUserCommand, LogInUs
|
||||
var accessToken = _tokenProvider.GenerateAccessToken(loginResult.User, loginResult.Roles);
|
||||
var refreshToken = _tokenProvider.GenerateRefreshToken();
|
||||
|
||||
await _refreshTokenRepository.AddAsync(refreshToken, loginResult.User.Id, cancellationToken);
|
||||
await _refreshTokenManager.AddAsync(refreshToken, loginResult.User.Id, cancellationToken);
|
||||
await _unitOfWork.SaveChangesAsync(cancellationToken);
|
||||
|
||||
return new LogInUserResultDto(accessToken, refreshToken);
|
||||
|
||||
@@ -5,15 +5,15 @@ namespace AipsCore.Application.Models.User.Command.LogOut;
|
||||
|
||||
public class LogOutCommandHandler : ICommandHandler<LogOutCommand>
|
||||
{
|
||||
private readonly IRefreshTokenRepository _refreshTokenRepository;
|
||||
private readonly IRefreshTokenManager _refreshTokenManager;
|
||||
|
||||
public LogOutCommandHandler(IRefreshTokenRepository refreshTokenRepository)
|
||||
public LogOutCommandHandler(IRefreshTokenManager refreshTokenManager)
|
||||
{
|
||||
_refreshTokenRepository = refreshTokenRepository;
|
||||
_refreshTokenManager = refreshTokenManager;
|
||||
}
|
||||
|
||||
public async Task Handle(LogOutCommand command, CancellationToken cancellationToken = default)
|
||||
{
|
||||
await _refreshTokenRepository.RevokeAsync(command.RefreshToken, cancellationToken);
|
||||
await _refreshTokenManager.RevokeAsync(command.RefreshToken, cancellationToken);
|
||||
}
|
||||
}
|
||||
@@ -5,12 +5,12 @@ namespace AipsCore.Application.Models.User.Command.LogOutAll;
|
||||
|
||||
public class LogOutAllCommandHandler : ICommandHandler<LogOutAllCommand>
|
||||
{
|
||||
private readonly IRefreshTokenRepository _refreshTokenRepository;
|
||||
private readonly IRefreshTokenManager _refreshTokenManager;
|
||||
private readonly IUserContext _userContext;
|
||||
|
||||
public LogOutAllCommandHandler(IRefreshTokenRepository refreshTokenRepository, IUserContext userContext)
|
||||
public LogOutAllCommandHandler(IRefreshTokenManager refreshTokenManager, IUserContext userContext)
|
||||
{
|
||||
_refreshTokenRepository = refreshTokenRepository;
|
||||
_refreshTokenManager = refreshTokenManager;
|
||||
_userContext = userContext;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,6 @@ public class LogOutAllCommandHandler : ICommandHandler<LogOutAllCommand>
|
||||
{
|
||||
var userId = _userContext.GetCurrentUserId();
|
||||
|
||||
return _refreshTokenRepository.RevokeAllAsync(userId, cancellationToken);
|
||||
return _refreshTokenManager.RevokeAllAsync(userId, cancellationToken);
|
||||
}
|
||||
}
|
||||
@@ -9,33 +9,33 @@ namespace AipsCore.Application.Models.User.Command.RefreshLogIn;
|
||||
public class RefreshLogInCommandHandler : ICommandHandler<RefreshLogInCommand, LogInUserResultDto>
|
||||
{
|
||||
private readonly ITokenProvider _tokenProvider;
|
||||
private readonly IRefreshTokenRepository _refreshTokenRepository;
|
||||
private readonly IRefreshTokenManager _refreshTokenManager;
|
||||
private readonly IAuthService _authService;
|
||||
private readonly IUnitOfWork _unitOfWork;
|
||||
|
||||
public RefreshLogInCommandHandler(
|
||||
ITokenProvider tokenProvider,
|
||||
IRefreshTokenRepository refreshTokenRepository,
|
||||
IRefreshTokenManager refreshTokenManager,
|
||||
IAuthService authService,
|
||||
IUnitOfWork unitOfWork)
|
||||
{
|
||||
_tokenProvider = tokenProvider;
|
||||
_refreshTokenRepository = refreshTokenRepository;
|
||||
_refreshTokenManager = refreshTokenManager;
|
||||
_authService = authService;
|
||||
_unitOfWork = unitOfWork;
|
||||
}
|
||||
|
||||
public async Task<LogInUserResultDto> Handle(RefreshLogInCommand command, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var refreshToken = await _refreshTokenRepository.GetByValueAsync(command.RefreshToken, cancellationToken);
|
||||
var refreshToken = await _refreshTokenManager.GetByValueAsync(command.RefreshToken, cancellationToken);
|
||||
|
||||
var loginResult = await _authService.LoginWithRefreshTokenAsync(refreshToken, cancellationToken);
|
||||
|
||||
var newAccessToken = _tokenProvider.GenerateAccessToken(loginResult.User, loginResult.Roles);
|
||||
var newRefreshToken = _tokenProvider.GenerateRefreshToken();
|
||||
|
||||
await _refreshTokenRepository.RevokeAsync(refreshToken.Value, cancellationToken);
|
||||
await _refreshTokenRepository.AddAsync(newRefreshToken, loginResult.User.Id, cancellationToken);
|
||||
await _refreshTokenManager.RevokeAsync(refreshToken.Value, cancellationToken);
|
||||
await _refreshTokenManager.AddAsync(newRefreshToken, loginResult.User.Id, cancellationToken);
|
||||
|
||||
await _unitOfWork.SaveChangesAsync(cancellationToken);
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ public static class PersistenceRegistrationExtensions
|
||||
services.AddTransient<IWhiteboardMembershipRepository, WhiteboardMembershipRepository>();
|
||||
services.AddTransient<IShapeRepository, ShapeRepository>();
|
||||
|
||||
services.AddTransient<IRefreshTokenRepository, RefreshTokenRepository>();
|
||||
services.AddTransient<IRefreshTokenManager, RefreshTokenManager>();
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
@@ -6,12 +6,12 @@ using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace AipsCore.Infrastructure.Persistence.RefreshToken;
|
||||
|
||||
public class RefreshTokenRepository : IRefreshTokenRepository
|
||||
public class RefreshTokenManager : IRefreshTokenManager
|
||||
{
|
||||
private readonly AipsDbContext _dbContext;
|
||||
private readonly JwtSettings _jwtSettings;
|
||||
|
||||
public RefreshTokenRepository(AipsDbContext dbContext, JwtSettings jwtSettings)
|
||||
public RefreshTokenManager(AipsDbContext dbContext, JwtSettings jwtSettings)
|
||||
{
|
||||
_dbContext = dbContext;
|
||||
_jwtSettings = jwtSettings;
|
||||
Reference in New Issue
Block a user