许多服务的一个JWT令牌

时间:2018-03-30 06:21:55

标签: authentication jwt asp.net-core-2.0 asp.net-core-webapi authorize

我在ASP.Net Core中面临JWT身份验证的问题。该方案如下:

  • 我有一个ASP.NET核心Web API,我们称之为'API A'。对于提供正确登录/密码的用户生成JWT令牌是可靠的,然后令牌正在生成。
  • 我有第二个ASP.NET Core Web Api,称为“API B”,它从数据库中返回一些数据。我希望能够使用由“API A”生成的JWT令牌来授权访问“API B”中的数据。

是否可以通过使用JwtBarear身份验证来实现它?

感谢您的任何提示!

3 个答案:

答案 0 :(得分:0)

是的,您可以为多个服务上的身份验证生成JWT令牌,您需要将此令牌保存在具有身份验证详细信息的database->表中(user_id,device,auth_token等),获取并重用相同的令牌验证用户,直到该令牌没有过期。

如果已过期,则重新生成并更新表中的令牌。

答案 1 :(得分:0)

  

是否可以通过使用JwtBarear身份验证来实现它?

这甚至是JWT令牌的预期目的。您可以使用该令牌对信任身份提供者A的任何服务(B,C,D)进行身份验证。

每个服务必须验证JWT令牌(到期,签名,...),即使没有将令牌存储在任何数据库中,假设JWT令牌包含确保身份和有效性的所有必要信息。

答案 2 :(得分:0)

你问题的标题提到了许多服务,但在你的问题中你只谈了两个。

请注意,JWT代币通常会有一个受众群体声明(aud),表明会为该代币发放哪些服务。在验证令牌时,请确保aud声明包含您服务的标识符。