Skip to content

Commit

Permalink
feat(users): user logout
Browse files Browse the repository at this point in the history
  • Loading branch information
CarlosPavajeau committed Jun 8, 2021
1 parent 71ece50 commit c23832c
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using Armory.Shared.Domain.Bus.Query;
using Armory.Users.Application.Authenticate;
using Armory.Users.Application.GenerateJwt;
using Armory.Users.Application.Logout;
using Armory.Users.Domain;
using Microsoft.AspNetCore.Mvc;

Expand Down Expand Up @@ -44,5 +45,12 @@ await _commandBus.Dispatch(new AuthenticateCommand(request.UsernameOrEmail, requ
var token = await _queryBus.Ask<string>(new GenerateJwtQuery(request.UsernameOrEmail));
return Ok(token);
}

[HttpPost("[action]")]
public async Task<IActionResult> Logout()
{
await _commandBus.Dispatch(new LogoutCommand());
return Ok();
}
}
}
8 changes: 8 additions & 0 deletions src/Users/Application/Logout/LogoutCommand.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
using Armory.Shared.Domain.Bus.Command;

namespace Armory.Users.Application.Logout
{
public class LogoutCommand : Command
{
}
}
21 changes: 21 additions & 0 deletions src/Users/Application/Logout/LogoutCommandHandler.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using System.Threading.Tasks;
using Armory.Shared.Domain.Bus.Command;
using Armory.Users.Domain;

namespace Armory.Users.Application.Logout
{
public class LogoutCommandHandler : ICommandHandler<LogoutCommand>
{
private readonly IArmoryUserRepository _repository;

public LogoutCommandHandler(IArmoryUserRepository repository)
{
_repository = repository;
}

public async Task Handle(LogoutCommand command)
{
await _repository.Logout();
}
}
}
1 change: 1 addition & 0 deletions src/Users/Domain/IArmoryUserRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ public interface IArmoryUserRepository
Task<ArmoryUser> FindByUsernameOrEmail(string usernameOrEmail);
Task<SignInResult> Authenticate(ArmoryUser user, string password, bool isPersistent);
Task<string> GeneratePasswordResetToken(ArmoryUser user);
Task Logout();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,10 @@ public async Task<string> GeneratePasswordResetToken(ArmoryUser user)
{
return await _userManager.GeneratePasswordResetTokenAsync(user);
}

public async Task Logout()
{
await _signInManager.SignOutAsync();
}
}
}

0 comments on commit c23832c

Please sign in to comment.