在HttpClient中使用JwtSecurityToken
发布时间:2022-04-07 04:40:15 317
相关标签: # flask
我正在尝试使用JWT令牌查询带有HttpClient
.我已经尝试了一段时间,尝试了很多不同的方法,比如Base64
编码并将JWT令牌raw放入授权头中,但端点会将403 Forbidden
加上;“身份验证失败”;每一次。JWT的验证工作正常,并且是通过Microsoft.IdentityModel.Tokens
:
public JwtSecurityToken ValidateCurrentToken(string token)
{
var jwksJson = GetKeyInfo();
var tokenHandler = new JwtSecurityTokenHandler();
var keyset = JsonWebKeySet.Create(eveJwksJson);
var tokenParameters = new TokenValidationParameters();
tokenParameters.ValidateIssuerSigningKey = true;
tokenParameters.ValidateIssuer = true;
tokenParameters.ValidateAudience = false;
tokenParameters.ValidateLifetime = true;
tokenParameters.ValidateActor = false;
tokenParameters.ValidIssuers = new List{ "host1", "host2" };
tokenParameters.IssuerSigningKey = keyset.Keys.First();
SecurityToken validatedToken;
try
{
tokenHandler.ValidateToken(token, tokenParameters, out validatedToken);
}
catch(Exception e)
{
throw new AuthenticationException("Token is not valid: " + e.Message);
}
var securityToken = (JwtSecurityToken) validatedToken;
}
但我不知道该在本节的授权标题中添加什么:
public async Task GetResponse(HttpClient httpClient, Uri uri, JwtSecurityToken token)
{
HttpRequestMessage httpRequestMessage = new HttpRequestMessage()
httpRequestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", );
httpRequestMessage.Method = HttpMethod.Get;
httpRequestMessage.RequestUri = uri
return await httpClient.SendAsync(httpRequestMessage);
}
有人建议我试试看urlBase64
编码JSON
来自令牌的数据,但没有结果。所有这些文档都与服务有关,我似乎可以找到任何适用于我的问题的文档。
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报