Пример #1
0
        public async Task <ResultModel> ApplyToken(ApplyTokenDto applyTokenDto)
        {
            var client = new HttpClient();
            //var disco = await client.GetDiscoveryDocumentAsync(_configuration.GetSection("IdentityAddress").Value);
            //disco.Policy = new DiscoveryPolicy { RequireHttps = false };
            var disco = await client.GetDiscoveryDocumentAsync(new DiscoveryDocumentRequest { Address = _configuration.GetSection("IdentityAddress").Value, Policy = new DiscoveryPolicy {
                                                                                                  RequireHttps = false
                                                                                              } });

            if (disco.IsError)
            {
                return(new ResultModel(ResultCode.Fail, disco.Error));
            }

            var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest
            {
                Address      = disco.TokenEndpoint,
                ClientId     = applyTokenDto.ClientId,
                ClientSecret = applyTokenDto.ClientSerect,
                GrantType    = "password",
                UserName     = applyTokenDto.Username,
                Password     = applyTokenDto.Password
            });

            if (tokenResponse.IsError)
            {
                return(new ResultModel(ResultCode.Fail, tokenResponse.Error));
            }

            var tokenJson  = tokenResponse.Json.ToString();
            var tokenModel = JsonConvert.DeserializeObject <TokenResultDto>(tokenJson);

            return(new ResultModel(ResultCode.Success, tokenModel));
        }
Пример #2
0
 public async Task <IActionResult> ApplyToken([FromBody] ApplyTokenDto dto)
 {
     return(Json(await _userService.ApplyToken(dto)));
 }