Example #1
0
        public async Task <GetTokenInfoResponse> GetTokenInfo(string accessToken)
        {
            using var client = GetHttpClient();
            var getTokenInfoRequest = new GetTokenInfoRequest()
            {
                AccessToken = accessToken
            };
            var content = GetHttpContent(JsonSerializer.Serialize <GetTokenInfoRequest>(getTokenInfoRequest, jsonSerializerOptions));
            var request = new HttpRequestMessage(HttpMethod.Get, $"{baseUrl}/api/user")
            {
                Content = content
            };
            var response = await client.SendAsync(request);

            var responseContent = await response.Content.ReadAsStringAsync();

            if (response.StatusCode == HttpStatusCode.OK)
            {
                var tokenInfo = JsonSerializer.Deserialize <GetTokenInfoResponse>(responseContent, jsonSerializerOptions);
                return(tokenInfo);
            }

            DispatchEvent(OnError, new UserClientErrorEventArgs($"Error getting token info: {response.StatusCode} : {responseContent}"));
            return(null);
        }
        public override Task <GetTokenInfoReply> GetTokenInfo(GetTokenInfoRequest request, ServerCallContext context)
        {
            var tokenClaims = tokenClaimsAccessor.TokenClaims;

            return(Task.FromResult(new GetTokenInfoReply()
            {
                UserId = tokenClaims.UserId,
                Scope = new Scope()
                {
                    System = tokenClaims.System,
                    DomainId = tokenClaims.DomainId,
                    ProjectId = tokenClaims.ProjectId,
                    Role = (Protos.Common.UserRole)tokenClaims.Role,
                }
            }));
        }
Example #3
0
        public async Task <ActionResult <GetTokenInfoResponse> > GetTokenInfo([Required(ErrorMessage = "You must provide an access token")] GetTokenInfoRequest getTokenInfoRequest)
        {
            if (getTokenInfoRequest == null)
            {
                return(BadRequest());
            }
            var getTokenResponse = await _userRepository.GetToken(getTokenInfoRequest.AccessToken);

            var validationResult = await ValidateToken(getTokenResponse);

            if (validationResult != TokenValidationResult.Ok)
            {
                return(NotFound());
            }

            return(new GetTokenInfoResponse()
            {
                OwnerId = getTokenResponse.OwnerId,
                Expires = getTokenResponse.Expires,
                Email = getTokenResponse.Email,
                UserName = getTokenResponse.UserName
            });
        }