C# 使用外部令牌添加身份验证

C# 使用外部令牌添加身份验证,c#,asp.net-core,token,C#,Asp.net Core,Token,我正在从外部api(其他应用程序)获取access_令牌,但我无法使用此令牌对我的api进行身份验证/授权,我正在获取令牌: [HttpPost("/authorize/user")] public async Task<IActionResult> Post([FromBody] LoginDTO login) { LoginDTO data = new LoginDTO { E

我正在从外部api(其他应用程序)获取access_令牌,但我无法使用此令牌对我的api进行身份验证/授权,我正在获取令牌:

    [HttpPost("/authorize/user")]
    public async Task<IActionResult> Post([FromBody] LoginDTO login)
    {
        LoginDTO data = new LoginDTO 
        { 
            Email = login.Email, 
            Password = login.Password 
        };

        var stringPayload = await Task.Run(() => JsonConvert.SerializeObject(data));

        var httpContent = new StringContent(stringPayload, Encoding.UTF8, "application/json");

        using (var client = new HttpClient())
        {

            client.BaseAddress = new Uri("myrul");

            var response = client.PostAsync("auth/login", httpContent).Result;

            var payload = JObject.Parse(await response.Content.ReadAsStringAsync())["token"];

            var access_token = payload.Value<string>("access_token");
            var refresh_token = payload.Value<string>("refresh_token");
            var expires_in = payload.Value<string>("expires_in");
            
            if (response.IsSuccessStatusCode)

              return Ok(access_token);

            else

              return BadRequest();
        }
        
    }
我需要授权的API:

    [HttpGet]
    [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }
[HttpGet]
[授权(AuthenticationSchemes=JwtBearerDefaults.AuthenticationScheme)]
公共IEnumerable Get()
{
返回新字符串[]{“value1”,“value2”};
}
但问题始终是:


为TokenValidation添加JWTBeareEvent的想法失败了吗?然后,您可以使用调试器检查异常详细信息。更多详细信息请访问:
AddJwtBearer(x=>…
add
x.Events=new jwtbearevents{OnTokenValidationFailed=e=>{/*check e.exception*/return Task.CompletedTask;};
将断点放在Task.CompletedTask上并检查异常。您确定您使用的SigningKey与用于在外部api上创建令牌的key匹配吗?@BryanLewis我检查了SigningKey,它现在可以工作了,谢谢!!
    [HttpGet]
    [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }