public async Task <Guid> Handle(ChangePasswordCommand command, CancellationToken cancellationToken)
        {
            if (PasswordHelper.Compare(command.OldPassword, command.NewPassword))
            {
                throw new Exception("The new password must be different from the old one");
            }

            var newPassword = PasswordHelper.Encrypt(command.NewPassword);

            var user = await _userRepository.Get(command.Id);

            user.SetPassword(newPassword);

            await _userRepository.Update(command.Id, user);

            return(user.Id);
        }
Example #2
0
        public IActionResult Login(string username, string password)
        {
            if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
            {
                return(BadRequest());
            }

            var user = m_UserRepository.GetByUserName(username);

            if (user == null)
            {
                return(NotFound(ResponseFactory.CreateResponse("User Not Found")));
            }
            else
            {
                if (PasswordHelper.Compare(user.Password, password))
                {
                    //TODO: move secret key to config
                    var token = new JwtTokenBuilder()
                                .AddSecurityKey(JwtSecurityKey.Create("armut.sample.messaging.secret"))
                                .AddSubject(user.UserName)
                                .AddIssuer("Armut.Sample.Messaging")
                                .AddAudience("Armut.Sample.Messaging")
                                .AddClaim("Username", user.UserName)
                                .AddExpiry(10)
                                .Build();
                    m_Logger.LogInformation("User Logged in with Id: {0}", user.UserID);
                    return(Ok(token.Value));
                }
                else
                {
                    m_Logger.LogInformation("Invalid Log in with Id: {0}", user.UserID);
                    return(Unauthorized());
                }
            }
        }