JWT授权令牌是在客户端生成的,但无法在API上运行

时间:2019-03-25 13:53:02

标签: rest authentication asp.net-core-mvc jwt authorization

我已尝试实施 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中的令牌吗。

0 个答案:

没有答案