我已尝试实施 jwt身份验证,因为令牌是在客户端正确生成的,但是 Web API 不能对客户端的请求进行身份验证,我已经提供了我已经使用的代码,并且正在 asp.net core 1.1中实现它。 我确保令牌正在使用 JWT.io 生成有效信息,并且一切正常。
这是Web API上的代码,它将验证来自另一台服务器的传入令牌
app.UseJwtBearerAuthentication(new JwtBearerOptions()
{
AutomaticAuthenticate=true,
IncludeErrorDetails=true,
TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = false,
ValidateAudience = false,
ValidAudience = "exampleissuer",
ValidIssuer = "exampleaudience",
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("superkey_ValueforSigningTheJSONWebTokenJWT"))
}
});
这是应用程序中生成令牌并通过请求发送的代码。
var signinKey = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(“ Superkey_ValueforSigningTheJSONWebTokenJWT”)))
var token = new JwtSecurityToken(
issuer: "exampleissuer",
audience: "exampleaudience",
signingCredentials: new SigningCredentials(signinKey, SecurityAlgorithms.HmacSha256)
);
var AuthenticationToken = new JwtSecurityTokenHandler().WriteToken(token);
//
_restClient.Authenticator = new JwtAuthenticator(AuthenticationToken);
req.AddHeader("WWW-Authenticate", string.Format("Bearer {0}", AuthenticationToken));
_restClient.Authenticator.Authenticate(_restClient, req);
//
有人可以帮助我验证Web API中的令牌吗。