【问题标题】:How to do OAuth authentication via AJAX / jQuery?如何通过 AJAX / jQuery 进行 OAuth 身份验证?
【发布时间】:2014-05-02 21:34:25
【问题描述】:

我使用过 Twitter Web API,我知道它适用于 OAuth,我已经使用 python 库使用过 API。我还尝试了一些使用 Java Script 小型库的 Instagram API。

我知道那些在后台执行 Web REST 请求,首先进行身份验证,然后在我编写代码时查询请求。

但是,如果我想在 Web 应用程序中使用 jQuery $.ajax 执行请求怎么办?

我已经阅读了一些文档和网站,看来这是可能的。就像只对 API 路由进行 ajaxing,从身份验证路由开始。

但是,这个过程是如何工作的?我的意思是,我通过 AJAX 查询身份验证路由,然后我如何跟踪该身份验证。如何保持这种沟通?那么重定向 URL 会发挥作用吗?

Reading this site for Instagram API我开始有所了解,但得到了上面提到的疑虑。

我想在 Java Script 服务器后台执行所有 AJAX 请求(我正在使用 node.js),假设我将在 $.ajax 中提供我的应用程序 OAuth。可以吗,或者我可以在客户端站点上实际编写代码来保存我的 OAuth 令牌?

而且,如果它关注同样的问题,当涉及到 bytes(图片、声音等)时,如何catch来自 API 的响应。

【问题讨论】:

  • "from my web site/server" --- ajax 是从客户端执行的,而不是从服务器执行的。
  • 没错,我的错。另外,你会建议我什么解决方案?
  • 老实说,我不明白你到底在问什么。
  • Twitter API 不支持 CORS,因此您将无法执行请求。所以你的问题是高度 API 供应商特定的
  • 您刚刚删除的问题中的第一个 SQL 块对我来说很好。表创建成功。

标签: javascript jquery ajax api oauth


【解决方案1】:

好的,如果我理解您想要做的是从网页向 Twitter API 进行 Ajax 调用,并从 Twitter 发布/检索推文和其他信息。

自 API v1.1 发布以来,Twitter 已弃用 v1.0 API,而 1.1 的主要变化之一是 Authentication Required on all Endpoints

并且从 JavaScript 和 jQuery 执行此操作是完全可能的(尽管非常麻烦、困难并且需要使用许多 3rd 方 JS 库来 HMAC 对您的数据和密钥进行哈希处理,并在发出请求之前在客户端计算内容长度。 Twitter API 不支持 CORS,但支持 JSONP 用于此类 Ajax 请求。但不建议这样做 - 因为在客户端执行此操作将要求您将 Twitter 应用程序访问密钥 - 私钥 - 嵌入到脚本文件中 -这基本上是一个很大的 NO-NO。因此建议使用服务器端解决方案来生成您的 oAuth 令牌。但是一旦您实现了这一点,在您的脚本中获取令牌并使用浏览器中的该令牌进行 Ajax 调用可能会更容易. 但我的研究还没有走那么远。

此外,这是基于我在 2013 年中期的研究,当时我的 Twitter Ajax 小部件由于此更改而停止工作,并且在我意识到它会危及我的安全密钥后,我放弃了尝试使用该路由修复它。从那以后情况可能发生了变化。

如果您仍然有兴趣找到解决方案,本演练将是开始了解 Twitter 的 oAuth 以及如何生成访问令牌的好地方:https://dev.twitter.com/docs/auth/oauth

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 2011-09-09
    • 1970-01-01
    相关资源
    最近更新 更多