使用 OAuth 和 javascript 的应用程序 [关闭]

Posted

技术标签:

【中文标题】使用 OAuth 和 javascript 的应用程序 [关闭]【英文标题】:application that uses OAuth and javascript [closed] 【发布时间】:2010-11-16 07:43:20 【问题描述】:

我计划创建一个使用 javascript 的应用程序,它需要使用 OAuth 来验证网站的用户。 谁能帮帮我?任何示例代码?我知道 Google Code Javascript OAuth 库,但我不知道如何实现它..

【问题讨论】:

【参考方案1】:

这里有一个用于 OAuth 的 JS 客户端实现: https://developers.google.com/identity/protocols/OAuth2UserAgent

它包含让您运行的示例代码。基本上,你要做的是:

var url = "...";
var accessor = 
  token: "...",
  tokenSecret: "...",
  consumerKey : "...",
  consumerSecret: "..."
;

var message = 
  action: url,
  method: "GET",
  parameters: ...
;

OAuth.completeRequest(message, accessor);        
OAuth.SignatureMethod.sign(message, accessor);
url = url + '?' + OAuth.formEncode(message.parameters);

// send request to 'url'
...

干杯, 马蒂亚斯

【讨论】:

我认为 tokenSecret 和 consumerSekret 参数应该是秘密的!下载到浏览器后怎么能保密?!!! 例如使用 SSL。但是,是的,浏览器环境中的 OAuth 肯定存在安全问题。 1.0(a)。不过你说得很好。如果您也可以控制服务提供者,我建议您选择 OAuth 2,因为它简化了开发人员和协议实施者所面临的许多问题。 即使使用SSL,有什么区别?发出 SSL 请求并将响应保存到硬盘驱动器的人可以轻松读取所有内容。对于公共应用程序,任何人都可以提出这样的请求。在 JavaScript 中使用秘密变量是完全不安全的。 为什么?为什么“秘密”是用户的秘密。它与存储在 cookie 中的 session_id 没有什么不同。仅仅因为它被命名为“秘密”并不能让它成为每个人的秘密。【参考方案2】:

上述安全问题可以通过YQL解决:http://derek.io/blog/2010/how-to-secure-oauth-in-javascript/

【讨论】:

至少在某种程度上。但随后您依赖于其他人的后端技术,而不是您自己的或不依赖 - 这是最初的目标。【参考方案3】:

我编写了一个通用的 OAuth 2.0 javascript 库。

JSO Javascript OAuth 2.0 Library

【讨论】:

您能否发布一个如何对自定义 Google App Engine 应用程序进行身份验证的示例?我已经为此苦苦挣扎了 2 天。您的库似乎不支持 3 个回调 url,OAuthGetRequestTokenOAuthAuthorizeToken 和 'OAuthGetAccessToken`?【参考方案4】:

如果您正在编写 Firefox(或其他 Mozilla)插件,请考虑使用 oauthorizer。我将它用于 goo.gl lite 的latest version。但是,我在 Mozilla 附加组件网站上确实遇到了一些问题,我目前正在解决这个问题。

【讨论】:

以上是关于使用 OAuth 和 javascript 的应用程序 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 JavaScript 的服务器到服务器应用程序的 OAuth 2.0

Javascript 中的安全 OAuth

iOS 的 Javascript UIAutomation 如何用于导航原生应用的 oAuth 流程?

JavaScript OAuth 使用 Twitter 登录

Salesforce OAuth 与 REST API 使用 Javascript

保护 oauth 不记名令牌免受 javascript 应用程序中的 XSS、CSRF 等攻击