2

我正在建立一项营销服务,我们在其中为各种公司提供小部件以将其托管在他们的网站上。这些小部件应该使用 javascript 直接从浏览器与我的服务器中的其余 API 对话,以获取和发布信息。最终用户可能需要也可能不需要授权,具体取决于他们访问的数据类型。我们需要使用流行的社交网络(如 facebook、twitter 等)对最终用户进行身份验证。实际上,我们的服务器端 api 需要验证两件事 1. 呼叫来自各自公司的网站 2. 呼叫由适当的端进行用户。

我不确定我必须在这里使用哪种身份验证。我认为,我不能使用 oauth(1.0, 2.0),因为它需要无法安全存储在 javascript 中的消费者密钥和秘密。是否有任何可以使用的修改后的 oauth 流程?已经有人解决了这个问题。如果我有人在服务器端有一个基于弹簧的解决方案,那就更好了。

4

1 回答 1

1

您无法验证呼叫是否来自相应公司的网站。呼叫将来自最终用户的浏览器,而不是站点。

此外,浏览器不能直接调用您的站点(至少不使用XMLHTTPRequest,因为您的小部件和服务器不在同一个域中。您可以使用 JSONP 解决此问题。

您可以使用 OAuth2,以及此处规范中所述的隐式授权流程:https ://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-31#section-4.2

于 2012-12-09T07:14:20.693 回答