标签: jwt

如何在最小的 API 中添加身份验证?

因此,我刚刚创建了一个“Echo”服务,这样我就可以更深入地了解 Web 应用程序和 Web API。它有很多路由,在每种情况下它都只会返回一个 JSON 结果,其中包含有关请求和响应的信息。
所以我有一个方法“header”,它将向响应添加一个标头。以及一个将发回 cookie 的方法“cookie”。以及其他一些具有实验路线的方法。
现在我想通过使用身份验证内容和 JWT 来重点关注身份验证,这样我就可以更深入地了解这些东西的作用。因为仅仅通过复制/粘贴其他项目中的内容来添加 AddAuthentication/AddJwtBearer 并不是我想要的。我也不想要一些数据库后端,但下一步我可能想通过 Google、Facebook 和 Twitter 进行 OAuth 身份验证。但现在,我有一个变量accounts来保存一些有效的登录帐户,现在我需要使用它来进行登录并使用此身份验证框架。
没有数据库,没有Azure,没有复杂的东西。只是简单、最少的 API 代码。那是因为这个项目的目的是了解该技术并对其进行实验,我不想专注于其他任何事情。仅认证。(就像我也用它来关注路由的工作原理一样。)
所以我想要的是几个步骤:

  1. 了解如何在最小的项目中添加身份验证。
  2. 创建一条需要身份验证的路由。
  3. 给这个项目添加授权。
  4. 制定一条需要授权的路线。
  5. 将身份添加到该项目。
  6. 创建一条使用身份的路由。

那么,要开始这一切,我该如何执行第 1 步?

var builder = WebApplication.CreateBuilder(args);

Dictionary<string, string> accounts = new Dictionary<string, string>() { { "wim", "123456" }, { "test", "abc123" } };

builder.Services.AddAuthentication()
    .AddCookie(options =>
    {
        options.LoginPath = "/Account/Unauthorized/";
        options.AccessDeniedPath = "/Account/Forbidden/";
    })
    .AddJwtBearer(options =>
    {
        options.Audience = "Everyone";
        options.Authority = "Wim";
    });

var app …
Run Code Online (Sandbox Code Playgroud)

c# authentication jwt asp.net-core-6.0

1
推荐指数
1
解决办法
3833
查看次数

将 jwt 访问令牌存储在 httpOnly cookie 中是否安全?

我观看了一个指南,其中作者将访问令牌存储在 localStorage 中,然后他将访问令牌作为授权标头,并通过 axios 拦截器在每个请求中使用值“Bearer accessToken”。但我想知道为什么不像我们使用刷新令牌那样将访问令牌存储在 httpOnly cookie 中。如果有的话会出现什么问题?

security authentication authorization jwt

1
推荐指数
1
解决办法
2270
查看次数

对于快速路由,节点护照自定义回调是否可以作为中间件?

我正在用node.js创建一个简单的Rest Api,并且我用jwt令牌保护它,我已经设置了护照和passport-jwt来验证哪个工作正常,如果jwt令牌有错误或者它不存在,护照将发送401和正文"未经授权".我知道如何更改路由的错误,以通过执行以下操作发回我想要的自定义错误消息;

router.route('/test')
    .put(function(req, res, next) {
    passport.authenticate('jwt', { session: false }, function(err, user, info) {
        if (err) { return next(err); }
        if (!user) { return res.send("Custom Unauthorised").end();  }
        return res.send("Test Route Accessed").end();
    })(req, res, next);
});
Run Code Online (Sandbox Code Playgroud)

我有大约20条路线,我将它们命名为以下类似的路线;

router.route('/books/:id/authors').get(passport.authenticate('jwt', { session: false }), myRoutes.books.authors);
Run Code Online (Sandbox Code Playgroud)

现在您将注意到我将资源特定的路由存储在他们自己的文件中(即myRoutes.books),所以我的问题是,有没有办法让自定义回调作为中间件,不需要路由文件的重大重组?

干杯

node.js express jwt passport.js

0
推荐指数
1
解决办法
1580
查看次数

CORS跨源资源共享和Json Web Token

在我的应用程序中,我包含了来自不同服务器/域的页面.为简单起见我将把我的主要应用Web应用的一种,另幅B.

某处我,用户已登录后,我将加载从页面通过使用CORS和JWT.在A中,我创建了一个传递给Ajax的编码令牌.Ajax在Header中添加了这个令牌("Authorization" = bearer + encoded token).

B然后使用此令牌解码并获取它所属的usersId和组,并确定用户是否有权访问该资源.此外,Web B中还有一个Access-Control-Allow-Origin = Web A设置,仅接受来自A的请求.

我的问题是关于CORS的安全部分和jwt的使用.在开发过程中,当使用Postman直接访问B中的资源时,我可以轻松绕过" Access-control-allow-origin ".只要我有正确的令牌,资源就会被送回来没有问题!我的意思是只需要一些潜在的黑客获取该编码的字符串,他们就可以轻松地使用Postman查看资源.

在涉及安全部分时,下一步是什么,因为我完全迷失了!

希望我能清楚地解释这个问题.所有帮助都非常感谢

security https http-headers cors jwt

0
推荐指数
1
解决办法
6620
查看次数

SwaggerUI为Asp.net Core提供JWT支持?

我编写了一个Asp.Net核心REST服务,并获得了一些基本的JWT支持.如何让swagger测试页面发送BEARER令牌?

有点讨厌必须使用Fiddler发送请求.击败Swagger的全部意义.

c# jwt swagger-ui asp.net-core

0
推荐指数
1
解决办法
2979
查看次数

Swagger和JWT令牌认证

我正在构建一些很好的Swagger文档,除了我希望页面可以交互地工作之外,所以在选择编辑器或UI时,如果我单击了Authorize按钮,则将调用构建JWT令牌的Authentication URL。然后在后续请求中使用。

我打算向API客户端颁发Api访问密钥和秘密访问密钥,并希望访问一个身份验证页面,该页面将对其进行处理并构建JWT令牌。

令我惊讶的是,如果我能够在Swagger中获得有关如何实现此目标的正确定义,那么我将拥有一个现成的测试客户端,然后将其用于我的新代码。

是的,这是我第一次使用JWT,但尚未构建代码。您可以说“ API优先”吗?

authentication rest jwt swagger

0
推荐指数
1
解决办法
1551
查看次数

ASP.NET Core 2授权属性jwt

请告诉我为什么这段代码不起作用.

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddAuthentication(options =>
        {
            options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
            options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
            options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            options.DefaultSignInScheme = JwtBearerDefaults.AuthenticationScheme;
        }).AddJwtBearer(options =>
        {
            options.RequireHttpsMetadata = false;
            options.TokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuer = true,
                ValidIssuer = AuthOptions.ISSUER,
                ValidateAudience = true,
                ValidAudience = AuthOptions.AUDIENCE,
                ValidateLifetime …
Run Code Online (Sandbox Code Playgroud)

c# jwt asp.net-core asp.net-core-identity

0
推荐指数
1
解决办法
641
查看次数

在网址中提供jwt令牌是一个好主意吗?

我需要在我们的应用程序之一中进行JSONP REST调用。为了进行身份验证,我必须在url中提供JWT令牌。

通过这篇文章,我对它的安全性有了一些了解。

将jwt用作GET请求的查询参数是否安全?

但是,我想了解更多有关如何以更安全的方式向JSONP提供JWT令牌的信息。

我可能无法提供有关我的应用程序的更多详细信息,但相信我我们没有使用JSONP来满足某些特定需求。

非常感谢。

security authentication rest jsonp jwt

0
推荐指数
1
解决办法
1039
查看次数

授权标头未到达laravel项目中的服务器

我正在使用JWT令牌对android用户进行授权,但是当我将其发送为null时,服务器会删除Authorization标头吗?我是否需要更改配置以允许标头传递给后端?

hosting header token jwt laravel

0
推荐指数
2
解决办法
1414
查看次数

Nuxt js &lt;nuxt-link /&gt;身份验证

我在nuxt中有一条只能由登录用户访问的路由:/ dashboard / secret。

/dashboard页面中,我有这样的链接:

<nuxt-link to="/dashboard/secret">Link to "secret" page</nuxt-link>
Run Code Online (Sandbox Code Playgroud)

单击时,nuxt将从中获取该页面

myapp.com/_nuxt/pages_dashboard_secret.js
Run Code Online (Sandbox Code Playgroud)

如何为该nuxt路由添加身份验证,以阻止人们手动转到该url并阅读内容?

是的,实际的机密数据将从用于验证用户令牌的外部api中获取,但是人们甚至可以看到此页面的html似乎还是错误的

jwt vue.js nuxt.js

0
推荐指数
3
解决办法
600
查看次数