JavaScript OAuth 使用 Twitter 登录

Posted

技术标签:

【中文标题】JavaScript OAuth 使用 Twitter 登录【英文标题】:JavaScript OAuth sign in with Twitter 【发布时间】:2011-01-29 01:35:47 【问题描述】:

我必须将 Sign-in-with Twitter 集成到我的应用程序中,如下所示。 https://dev.twitter.com/docs/auth/sign-twitter 它是用 javascript 开发的基于浏览器的应用程序 我一直在参考谷歌代码 java 脚本 OAuth,但我很困惑如何使用 oauth/authenticate 以及如何获取 oauth_token

谁能帮我提供一些样品?

【问题讨论】:

您是否在 Twitter 网站上查看过有关使用 oauth_token 的文档? apiwiki.twitter.com/… 所有链接都失效了。 twitter 的文档很烂。为什么这么难做到这一点?它应该很简单 【参考方案1】:

由于我在寻找相同的东西,尽量不使用自定义 php 解决方案,我在http://www.fullondesign.co.uk/coding/2516-how-use-twitter-oauth-1-1-javascriptjquery.htm 遇到了这个非常简单的集成,它使用一个 PHP 代理,它接受你想从中检索的任何 twitter api 调用你的 javascript ..

我一定会看的

【讨论】:

嗨,我也想过用代理来隐藏秘密。你试过这个解决方案吗?它仍在使用当前的 twitter API 吗?有限制吗?【参考方案2】:

查看 Twitter @Anywhere JSDK authCompletesignOut 事件和回调https://dev.twitter.com/docs/anywhere/welcome#login-signup

twttr.anywhere(function (T) 

    T.bind("authComplete", function (e, user) 
      // triggered when auth completed successfully
    );

    T.bind("signOut", function (e) 
      // triggered when user logs out
    );

);

【讨论】:

Potinch,三个月前我做到了,并且工作得很好,但我知道 Twitter 是 sunsetting Anywhere,而这个出色的 JavaScript API 将不再可用。我阅读了新文档,发现没有友好的 Javascript API,我发现的唯一信息是 do it yourself。你知道现在 Anywhere 将被弃用的方法是什么吗?谢谢! 感谢@fernaramburu 引起我的注意!我正在调查它 - 目前很难说,因为您似乎必须推出自己的解决方案(后端和前端)来提供诸如“authComplete”和“signOut”之类的事件。会回复你...【参考方案3】:

问题在于,查看您页面的任何人现在也可以查看您的消费者密钥和秘密,这些密钥和秘密必须保密。

现在,有人可以编写一个应用程序,使用您的应用程序凭据并做一些淘气和坏事,以至于 twitter 和用户禁止您,而您无能为力。

Twitter 确实声明,必须尽一切可能将这些值保密以避免这种情况发生

很遗憾,目前无法在基于浏览器的 JavaScript 中安全地使用 oAuth。

【讨论】:

我在 Twitter 工作的朋友证实了这一点。可以做到,但不赞成……显然。 @Dan 我可以使用不安全的 Twitter OAuth 方式【参考方案4】:

在 consumer.js 中使用以下代码并在 index.html 下拉列表中选择示例提供者

consumer.example =
 consumerKey   : "your_app_key"
, consumerSecret: "your_app_secret"
, serviceProvider:
   signatureMethod     : "HMAC-SHA1"
  , requestTokenURL     : "https://twitter.com/oauth/request_token"
  , userAuthorizationURL: "https://twitter.com/oauth/authorize"
  , accessTokenURL      : "https://twitter.com/oauth/access_token"
  , echoURL             : "http://localhost/oauth-provider/echo" 
  
;

【讨论】:

以上是关于JavaScript OAuth 使用 Twitter 登录的主要内容,如果未能解决你的问题,请参考以下文章

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

Javascript 中的安全 OAuth

JavaScript OAuth 使用 Twitter 登录

使用 OAuth2 下载 Javascript 文件

如何使用 Oauth2 和 javascript 客户端(Spring Oauth2 + Angularjs)实现长期登录会话

使用 oAuth 对 javascript 小部件进行身份验证