Пример #1
0
        public async Task <JwtToken> GenerateTokenAsync(IClientCredentialsTokenRequest request)
        {
            await ValidateRequestAsync(request);

            var jwtToken = await CreateJwtTokenAsync();

            var accessToken = jwtToken.ToAccessToken();

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

            return(jwtToken);
        }
Пример #2
0
        private async Task ValidateRequestAsync(IClientCredentialsTokenRequest request)
        {
            _request = request;

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

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

            if (_application.Type == ClientTypes.Public)
            {
                throw new UnauthorizedClientException("Public clients cannot use the client credentials grant.");
            }
        }