Javascript IdentityServer身份验证核心和角度客户端最佳实践

Javascript IdentityServer身份验证核心和角度客户端最佳实践,javascript,asp.net,authentication,identityserver3,identityserver4,Javascript,Asp.net,Authentication,Identityserver3,Identityserver4,给定: Asp MVC核心客户端 由ASP MVC核心托管的JavaScript客户端 Asp Web Api 所有人都在使用IdentityServer进行身份验证 问题 对于普通用户,身份验证是使用asp核心和oidc客户端完成的。我使用asp核心中的访问令牌访问api 现在,一个javascript函数想要访问一个授权的api,并且需要访问令牌 在javascript中使用它的最佳实践是什么 我认为主要有两种选择 1.)我使用oidc客户端在javascript中进行“静默”身份验证。

给定:

  • Asp MVC核心客户端
  • 由ASP MVC核心托管的JavaScript客户端
  • Asp Web Api
所有人都在使用IdentityServer进行身份验证

问题

对于普通用户,身份验证是使用asp核心和oidc客户端完成的。我使用asp核心中的访问令牌访问api

现在,一个javascript函数想要访问一个授权的api,并且需要访问令牌

在javascript中使用它的最佳实践是什么 我认为主要有两种选择

1.)我使用oidc客户端在javascript中进行“静默”身份验证。(感觉像是重复的工作)

2.)我将access_令牌存储在一个cookie中,javascript可以从中获取它(pot.unsecured)

3.)(感觉像一股气味)创建一个授权端点,如/me/token,返回访问令牌


此场景中的预期方式是什么?

您可以在MVC视图上呈现一个脚本标记,用于配置AJAX标头,以便使用MVC中的access\u令牌添加授权标头


令牌是安全的,因为它们是经过签名的,所以您可以在不知道要签名的密钥和时间限制的情况下更改它们。在使用代币之前,还需要对其进行验证。

我也有同样的问题。我的MVC应用程序使用Angular客户端。我现在也想知道这方面的最佳做法是什么。A.t.m我已经做了选项1。但这确实是重复的工作。@ErazerBrecht,我尝试进行“静默”身份验证,但似乎我需要先登录,然后续订令牌,所以我在MVC和客户端分别登录两次。你能告诉我如何实施方案1吗?