用 Postman 添加 JWT 认证后没有响应?
Posted
技术标签:
【中文标题】用 Postman 添加 JWT 认证后没有响应?【英文标题】:No response after adding JWT authentication with Postman? 【发布时间】:2020-04-17 00:53:38 【问题描述】:我正在尝试将 JWT 身份验证添加到我的 ASP.NET Core Web API。
这是我在ConfigureService
方法中添加的内容:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
options.TokenValidationParameters = new TokenValidationParameters
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = Configuration["Jwt:Issuer"],
ValidAudience = Configuration["Jwt:Issuer"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Key"]))
;
);
Configure
方法中的这一行:
app.UseAuthentication();
当然我在appsettings.json
中添加了JWT设置:
"Jwt":
"Key": "ThisismySecretKey",
"Issuer": "https://localhost:44311/"
这是处理 post 类以返回 jwt 令牌的代码:
[AllowAnonymous]
[HttpPost]
public IActionResult Login([FromBody]UserModel login)
IActionResult response = Unauthorized();
var user = AuthenticateUser(login);
if (user != null)
var tokenString = GenerateJSONWebToken(user);
response = Ok(new token = tokenString );
return response;
并在我的Get
方法中添加了[Authorize]
属性:
[HttpGet]
[Authorize]
public ActionResult<IEnumerable<string>> Get()
return new string[] "value1", "value2" ;
问题是当我从 Postman 调用端点时,除非我删除 Authorize
属性,否则我不会得到任何响应!
【问题讨论】:
The problem is when I call the endpoints from Postman, I don't get any response unless I remove the Authorize attribute!
-您是否使用请求标头发布密钥?
可以分享一下GenerateJSONWebToken方法吗?
【参考方案1】:
我发现问题的原因是在 Postman 中设置了 SSL 证书:
【讨论】:
【参考方案2】:我认为问题出在你的关键,我已经改变了它并且它有效。我不确定,但长度可能是个问题。 试试这个,
"Jwt":
"Key": "THIS IS MY SECRET KEY DID YOU LIKE IT",
"Issuer": "https://localhost:44311/"
【讨论】:
以上是关于用 Postman 添加 JWT 认证后没有响应?的主要内容,如果未能解决你的问题,请参考以下文章