【发布时间】:2016-03-29 06:44:16
【问题描述】:
我有一个场景,其中有许多单独的客户端通过 JWT 令牌连接。
- 客户端(浏览器)首先需要登录(并获得 JWT 令牌)
- 然后客户端需要检索他们的帐户信息,他们通过向服务器(包括 JWT 令牌)发送请求来完成此操作。服务器(有权访问密钥)读取 JWT 令牌(安全)并应发送回用户信息,怎么办?
附言每个客户都有不同的秘密
我可以针对每个应用执行此操作
app.UseJwtBearerAuthentication(
new JwtBearerAuthenticationOptions
{
AllowedAudiences = new[] { audience },
IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
{
new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret)
},
Provider = new CookieOAuthBearerProvider("authCookie")
});
但此方法不适用于每个请求....
【问题讨论】:
-
你能改写你的问题吗?当您说“我需要向我的服务器发送请求”时,您的意思是您的应用程序服务器需要将 JWT 令牌传递给单独的服务器吗?或者您是在谈论将令牌从客户端发送到您的服务器?
-
希望能解决这个问题。
-
会话 cookie 不够好是有原因的吗?如果您在控制器方法上添加
Authorize属性,则可以确保用户已正确验证(在本例中使用 JWT 令牌)。无论如何,您可以使用JwtSecurityTokenHandler.ValidateToken验证令牌 -
是的,原因是因为这是一个 SSO 系统,JWT 令牌被传递给另一个完全独立的应用程序。此外,我连接的服务器已经包含它自己的登录系统。