在没有用户登录屏幕的情况下从Javascript调用安全的REST API

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在没有用户登录屏幕的情况下从Javascript调用安全的REST API相关的知识,希望对你有一定的参考价值。

你如何从没有登录的javascript脚本应用程序中调用安全的REST api?

我有一个没有用户登录的Javascript应用程序(React)。它需要调用一些使用Oauth的REST api服务(Azure Ad - WindowsAzureActiveDirectoryBearerAuthentication)。

这些REST服务启用了CORS。

我还在Azure广告中注册了我的Web应用程序。

问题是javascript应用程序需要调用https://login.microsoftonline.com/ {{tenantId}} / oauth2 / token来获取访问令牌。我发现无法为该URL启用CORS。我的JS应用程序没有任何登录,因此我无法在弹出窗口中显示登录屏幕或使用adal js。

我提出的解决方案是我将我的Javascript应用程序放在NodeJS(Express)中。 JS调用调用login.microsoftonline.com的NodeJS来获取令牌,并在调用其他安全的REST服务时传递它。

它工作得很好,但我认为可能存在一些安全问题。

有没有更好的方法来设计这种应用程序?

答案

你正在做的是正确的方法。它使所有Oauth令牌在您的服务器上保持安全,而无需向客户端公开。

这是大多数Oauth2 API没有实现CORS的主要原因

以上是关于在没有用户登录屏幕的情况下从Javascript调用安全的REST API的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有模态或推送的情况下从一个 UIViewController 编程到另一个?

如何在没有调用者 UUID 的情况下从自定义 UI 结束 CallKit 调用?

如何在 identityserver4 中没有用户名和密码的情况下从令牌端点获取令牌?

如何在不注册身份的情况下从外部提供商获取用户登录信息

如何在没有动画的情况下从集合视图中删除项目?

在没有任何库的情况下从多个图像用 Javascript 制作 GIF