public async Task <JsonWebToken> SignInAsync(string email, string password)
        {
            var user = await _userRepository.GetAsync(email);

            if (user == null || !user.ValidatePassword(password, _passwordHasher))
            {
                throw new MicroSException(Codes.InvalidCredentials, "Invalid credentials.");
            }
            var refreshToken = new dto.RefreshToken(user, _passwordHasher);
            var claims       = await _claimsProvider.GetAsync(user.Id);

            var jwt = _jwtHandler.CreateToken(user.Id.ToString("N"), user.Role, claims);

            jwt.RefreshToken = refreshToken.Token;
            await _refreshTokenRepository.AddAsync(refreshToken);

            await _busPublisher.PublishAsync(new SignedIn(user.Id), CorrelationContext.Empty);

            return(jwt);
        }
Beispiel #2
0
 public async Task UpdateAsync(dto.RefreshToken token)
 => await _repository.UpdateAsync(token);
Beispiel #3
0
 public async Task AddAsync(dto.RefreshToken token)
 => await _repository.AddAsync(token);