从 startup.cs 检查令牌有效性

Posted

技术标签:

【中文标题】从 startup.cs 检查令牌有效性【英文标题】:Check token validity from startup.cs 【发布时间】:2018-12-30 21:50:14 【问题描述】:

我有多个 API,其中一个允许令牌身份验证,身份验证 API 的控制器生成一个令牌,我想要从其他 API 的 startup.cs 中检查此令牌的有效性。

有人知道如何正确地做到这一点吗?

这是我的startup.cs,我想在其中检查收到的令牌:

 //Add JWT
services.AddAuthentication(options => 
  options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;)
    .AddJwtBearer(options => 
      options.RequireHttpsMetadata = false;
      options.MetadataAddress = "http://localhost:50214/api/Authentification/Validate";
      options.SaveToken = true;
   );

【问题讨论】:

【参考方案1】:

Jwt 中间件本身非常乐意执行验证。您可能感兴趣的是对中间件公开的一个或多个事件做出反应,例如OnMessageReceived(与协议交互和进行修改的“原始”方式)或@ 987654323@(发生在验证发生之后而不是之前)。

这些附加到JwtBearerEvents 类,可以通过options.Events 从您的代码中访问。

【讨论】:

我将尝试解释我的需求。粗略地说,我有一个微服务架构,其中一项服务处理身份验证。所以我想要的是,当其他服务收到一个 http 请求时,他们应该上诉身份验证服务来检查令牌的有效性。

以上是关于从 startup.cs 检查令牌有效性的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Startup.cs 中的 Configure 方法调用 services.Configure

检查 cookie 中 JWT 令牌的有效性时如何避免不必要的 API 调用

如何从 Startup.cs 的 InjectsAuthElements 方法中的配置中获取连接字符串

如何在路由前检查令牌的有效性?

我应该在哪里以及如何在passportjs中检查访问令牌的有效性

Spring security OAuth - 检查访问令牌的有效性?