【发布时间】:2020-05-14 06:21:28
【问题描述】:
我们需要向我们的网络应用程序添加新功能,该应用程序是用 asp.net core 3.1 和 angular 编写的,它可以在 Zoom 中创建新的预定会议(视频会议服务提供商)。目前这是唯一的要求,所以从表面上看,这听起来很简单。事实上,他们的 api 有据可查且易于使用。现在,由于我们在服务器上使用 asp.net core,我们可以使用它的缓存功能,如会话、内存中缓存 (IMemoryCache) 等。我缺少完成图片的知识是关于 OAuth 访问令牌。我不确定 Zoom 颁发的访问令牌是否特定于刚刚通过身份验证/授权并想要创建新会议的用户或我们的网络应用程序(我们称之为网络应用客户端,根据 OAuth 的条款)。所以这里的意思是我们需要为访问令牌选择合适的存储机制。如果是用户级别的,即特定于我们应用程序当前正在使用它的用户,我们需要将令牌存储在 asp.net core 的 Session 存储中,但另一方面,如果令牌也就是说,假设在上一级我们需要全局存储令牌,也许在 asp.net 核心的内存缓存中,IMemoryCahce 的东西。这是我需要了解的主要问题。关于将访问令牌保留在服务器上,这是我从阅读有关该主题的一些材料中了解到的最佳实践。
非常感谢,
阿什隆
【问题讨论】:
-
按照 OAuth 的说法,
client是您用户的浏览器,所以也许将它们存储在您的 Angular 应用程序中? -
根据互联网上的一些资源,不建议这样做。一个例子:medium.com/@benjamin.botto/…
-
我不是在谈论将它保存在浏览器的
Local Storage中。将其存储在内存中。 -
哦,我明白了,您的
asp.net core API需要代表用户对Zoom做一些事情。这就是为什么你称它为client。 -
看起来您需要将身份验证代码流与 pkce 或 oauth 授权类型的隐式流一起使用。用户登录您的应用程序后,您需要将用于代表用户进行缩放的 jwt 令牌存储在浏览器存储中。然后,当您进行 api 调用时,您需要将该令牌依次传递给您的 then 以进行缩放。在这里,您使用的是委托权限,用户已同意该应用代表他/她执行放大操作。
标签: c# rest asp.net-core oauth-2.0 dotnet-httpclient