从 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 方法中的配置中获取连接字符串