26 lines
883 B
C#
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>());
|
|
}
|
|
|
|
}
|
|
} |