Exemplo n.º 1
0
        public async Task <JwtToken> GenerateTokenAsync(IResourceOwnerPasswordCredentialsTokenRequest request)
        {
            await ValidateRequestAsync(request);

            var jwtToken = await CreateJwtTokenAsync();

            var accessToken = jwtToken.ToAccessToken();

            _accessTokenRepository.Add(accessToken);
            await _accessTokenRepository.SaveAsync();

            return(jwtToken);
        }
Exemplo n.º 2
0
        private async Task ValidateRequestAsync(IResourceOwnerPasswordCredentialsTokenRequest request)
        {
            _request = request;

            if (_request.ClientId == Guid.Empty || _request.ClientSecret == null)
            {
                throw new InvalidClientException("Invalid client credentials.");
            }

            if (_request.Username == null || _request.Password == null)
            {
                throw new InvalidGrantException("Invalid resource owner credentials.");
            }

            _user = await _authenticateUserService.AuthenticateAsync(request.Username, request.Password);

            _application = await _authenticateClientService.AuthenticateAsync(request.ClientId, request.ClientSecret);
        }