在没有用户登录屏幕的情况下从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 调用?