2016-06-21 340 views
2

我想仅使用JavaScript和HTML为我的网站添加Twitter登录功能。Twitter使用JavaScript登录?

是否有可能?

+0

你需要后端代码也还是只从客户端意味着 – arisalexis

+0

@arisalexis不,我只是想填表电子邮件,姓名等 –

+0

passport.js是最简单的选项IMO – arisalexis

回答

0

如果你查看twitter的API文档,你可以看到如何做登录。

我认为你的问题是如何插入一个类似于facebook的登录插件,但我认为他们没有任何图书馆。

当用户点击该按钮,洛则必须发送POST请求到Twitter要获取的oauth_token: 例子:POST请求“api.twitter.com/oauth/request_token”

然后,Twitter提供你的oauth_token和oauth_token_secret(私人)。

一旦你完成了这一步,你必须将用户重定向到Twitter。 例如:Get请求“api.twitter.com/oauth/authenticate?oauth_token=YOUR_OAUTH_TOKEN_GIVEN_IN_STEP_1”

如果一切都已经与组oauth_token和验证的OAuth令牌顺利Twitter的回应你。

让我们设置最后一步!

使用步骤2的响应中提供的验证器oauth标记向twitter api端点发送发布请求。 示例:发送验证器oauth标记作为post参数的“api.twitter.com/oauth/access_token”POST请求。

然后用一个秘密令牌和用户令牌的twitter响应,您可以保存它并随意在任何twitter端点中使用它。

登录文档:https://dev.twitter.com/web/sign-in/implementing 浏览器的验证流程:https://dev.twitter.com/web/sign-in/desktop-browser

商祺!

+0

得到'而POST请求auth_token'什么是与API一起传递的参数吗? –

1

是和否。

如果您只想使用浏览器客户端JavaScript来完成此操作,那么这是不可能的,因为Twitter不允许跨站点请求。

浏览器在沙盒环境中执行JavaScript代码,它不允许您向其他域请求您的请求,除非第三方域明确允许。这就是所谓的Http Access Control (CORS)

但是,Twitter API当然可以被JavaScript应用程序使用,该应用程序并未在浏览器中运行。

所以,如果你想要这个功能,为您的网站,你想它只是JavaScript代码,你会写你的网站后端的API或的NodeJS使用像@RationalDev其他第三方服务建议

3

如果您的意思是客户端上只有JavaScript和HTML,则有一些第三方库。

Auth0很受欢迎,并有instructions for Twitter

另一个可能的解决方案是使用Firebase身份验证。它有一个JavaScript API which can be used as follows

创建Twitter的提供者对象的一个​​实例:

var provider = new firebase.auth.TwitterAuthProvider(); 

身份验证使用Twitter的提供对象火力地堡。您可以提示您的用户使用其Twitter帐户登录,方法是打开弹出窗口或重定向到登录页面。

+0

在两者之间会使用一个3d方认证服务(因为不可能),你必须给你的twitter api机密,但是我把它投票,因为它基本上允许做OP的任务。 –

+0

感谢不知道谷歌有这个平台“firebase”btw这应该被接受的答案。 – zaw