在Angular 2+应用中从Twitter获取用户访问令牌

时间:2018-10-03 06:45:31

标签: javascript angular twitter angular6 twitter-oauth

嗨,我想获取一个Twitter用户访问令牌/刷新令牌,以便我的应用程序可以代表用户发布/读取推文。

我的应用程序中有一个按钮..单击该按钮时,我需要显示以下图片-enter image description here

用户应该能够提供他/她的证书,并且如果它已经登录到Twitter,那么他/她应该只看到授权应用按钮。

我在开发人员的Twitter帐户中创建了一个新应用。.但是对于如何使用户的访问令牌代表他发帖/读取,他一无所知...

1 个答案:

答案 0 :(得分:1)

Twitter使用OAuth1.0a,与使用OAuth2.0的Facebook不同。 OAuth1.0a和OAuth2.0之间的区别在于OAuth1.0a更加安全,您应该使用基于服务器的身份验证流程,因为它涉及api密钥和秘密,我们不应该与Angular应用共享。

在服务器端(NodeJS / Django等),您应该使用OAuth1.0客户端库,该库将帮助您完成复杂的请求签名过程,然后再将其发送到Twitter。 这是一个有用的链接(我也曾用过)供您实现服务器流程: https://github.com/requests/requests-oauthlib/blob/master/docs/oauth1_workflow.rst

基本上,Twitter的OAuth流程如下:

  1. 发送POST请求到oauth / request_token
  2. 您将从步骤1中获得类似https://api.twitter.com/oauth/authorize?oauth_token=XXX的身份验证网址,您会将其重定向到用户,以便他们可以授权您的应用
  3. Twitter使用access_tokenverifier将用户重定向到您的重定向URL(您在上一步中随请求发送)。
  4. 您需要通过向access_token发送verifier来将POSToauth/access_token交换为实际可用的用户访问令牌。

您可以在此处找到有关三足式OAuth流的更多详细信息:https://developer.twitter.com/en/docs/basics/authentication/overview/3-legged-oauth