当前位置: 首页 > 知识库问答 >
问题:

使用邮递员添加 JWT 身份验证后没有响应?

仇炜
2023-03-14

我正在尝试将JWT身份验证添加到我的ASP。NET核心Web API。

这是我添加到配置服务方法中的内容:

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"]))
    };
});

配置方法中的这一行:

 app.UseAuthentication();

当然,我已经在< code>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 调用endpoint时,除非删除 Authorize 属性,否则我不会得到任何响应!

共有2个答案

牟正真
2023-03-14

我发现问题的原因是Postman中设置了SSL证书:

商池暝
2023-03-14

我想问题出在你的钥匙上,我已经换了,它起作用了。我不确定,但长度可能是问题。试试这个,

"Jwt": {
 "Key": "THIS IS MY SECRET KEY DID YOU LIKE IT",
 "Issuer": "https://localhost:44311/"
}
 类似资料:
  • Postman上有没有办法在执行请求A之前预先执行请求B? 上下文:我创建了一个Symfony应用程序来管理一组web服务。大多数路由只有在用户完全通过身份验证后才能被调用(对于熟悉框架的人使用form_login和防火墙) 因此,我必须先打电话: 邮政 /login 用户名 密码 在能够呼叫之前 获取/某些_安全_路线 (返回 JSON 响应) 当我在Postman构建器中连续手动调用路由时,这

  • 我正在尝试使用Postman发出POST请求。我拥有的凭据只是一个API密钥,而不是用户名和密码。 现在在Postman中,只要我选择“基本认证”,它就会提示输入用户名和密码。所以我将这些字段留空,然后转到Headers以给出我自己的授权键值,这给我留下了两个“授权”字段,如屏幕截图所示,我得到了无效的身份验证响应。 使用CLI中的CUrl命令授权工作正常。有解决方法吗?

  • 我正在开发一个具有自己的身份验证和授权机制的REST应用程序。我想使用JSON Web Tokens进行身份验证。以下是有效且安全的实现吗? < li >将开发一个REST API来接受用户名和密码并进行认证。要使用的HTTP方法是POST,因此没有缓存。此外,在传输时还会有安全SSL < li >在认证时,将创建两个JWTs访问令牌和刷新令牌。刷新令牌将具有更长的有效期。这两个令牌都将写入coo

  • 我正在使用SpringBoot开发具有微服务架构的Rest Backend。为了保护endpoint,我使用了JWT令牌机制。我正在使用Zuul API网关。 如果请求需要权限(来自JWT的角色),它将被转发到正确的微服务。Zuul api网关的“WebSecurityConfigrerAdapter”如下。 这样,我必须在这个类中编写每个请求授权部分。因此,我希望使用方法级安全性,即“Enabl

  • jwt不应该仅仅用于认证用户吗?我读到过可以在里面存储非敏感的东西,比如用户ID。将权限级别之类的东西存储在令牌中可以吗?这样我可以避免数据库调用。

  • 我已经安装了OpenLDAP服务器。 如何在LDAP服务器中添加用户(条目)?以及如何打开该服务器的命令窗口,以便在其上运行ldap命令: :我的要求是:在我的应用程序中,我想对Openldap服务器中添加的用户进行身份验证,但我只能在windows os上安装Openldap服务器,但如何添加用户我无法获得方法。在Windows7操作系统上安装openLDAP whic时添加用户的方法是什么?这