如何使用Identity Server 4保护Asp.net核心2.1和Vue.js单页面应用程序

问题描述 投票:0回答:1

实际上我有一个与架构师有关的小混乱因为我有2个独立的应用程序和1个Identity Server4应用程序,一个AspNet核心2.1 API解决方案,它运行在不同的域和服务器上,与其他2相同。现在我有以下几点:

  1. 已将我的客户端应用程序(即Vue.js SPA)添加为Identity Server4中具有隐式模式的客户端,因为它是Js客户端
  2. 我是否需要将API应用程序添加为IDP服务器中的客户端。 如果是,那么如何使用Axios从VUE.js调用任何API,因为当从Vue.js应用程序登录时,它将获得该客户端的令牌,并将用于显示隐藏按钮或我的网页部分。 我有点困惑,我应该使用我为vue.js客户端获得的声明来验证API。 如果我在Identity Server 4中为客户端注册API,那么如何从vue.js客户端应用程序调用api。
javascript vue.js identityserver4 asp.net-core-2.1
1个回答
0
投票
  1. 您应该将API添加为ApiResource而不是客户端,然后在Startup中注册它。您可以查看JS应用程序的快速入门,其中包含所有内容:https://github.com/IdentityServer/IdentityServer4.Samples/tree/master/Quickstarts/6_JavaScriptClient
  2. 在javascript客户端中,您需要调用Identity Server并进行身份验证。有一个库可以为你做这个:https://github.com/IdentityModel/oidc-client-js。它也用在快速入门中,因此您可以看到它是如何完成的。
  3. 每次调用API时,必须使用从Identity Server获取的访问令牌将授权标头设置为“Bearer”。另外,不要忘记在API中设置Jwt承载认证。

我之前提到的快速入门中有一些示例代码。

© www.soinside.com 2019 - 2024. All rights reserved.