gandalf-reborn/Api/Handlers/Security/PasswordHashingHandler.cs
2025-03-02 12:51:02 +01:00

26 lines
883 B
C#

using LanguageExt.Common;
using Microsoft.AspNetCore.Identity;
using W542.GandalfReborn.Commands;
using W542.GandalfReborn.Extensions;
using W542.GandalfReborn.Handlers.Commands;
namespace W542.GandalfReborn.Handlers.Security;
public class PasswordHashingHandler(IPasswordHasher<object> passwordHasher) : IGrCommandHandler<HashPasswordCommand, Result<string>>
{
private static readonly object MicrosoftIsAMeme = new();
public Task<Result<string>> Handle(HashPasswordCommand command, CancellationToken cancellationToken)
{
try
{
var hash = passwordHasher.HashPassword(MicrosoftIsAMeme, command.RawPassword);
return Task.FromResult(hash.AsResult());
}
catch (Exception)
{
return Task.FromResult("Something went wrong while hashing password.".AsErrorResult<string>());
}
}
}