【问题标题】:Where I can take access_token and token_secret for twitter我可以在哪里获取 twitter 的 access_token 和 token_secret
【发布时间】:2018-06-27 09:31:24
【问题描述】:

也许我的问题很愚蠢。

但我在 rest-auth 的官方文档和问题中都找不到答案。

我想通过 Twitter 使用身份验证。

我在 Twitter 中创建了应用程序,将所有数据放入模型社交应用程序中 根据我提出的文件来看:

from allauth.socialaccount.providers.twitter.views import TwitterOAuthAdapter
from rest_auth.views import LoginView
from rest_auth.social_serializers import TwitterLoginSerializer
from rest_framework.permissions import AllowAny


class TwitterLogin(LoginView):
    serializer_class = TwitterLoginSerializer
    adapter_class = TwitterOAuthAdapter
    permission_classes = (AllowAny,)

添加网址:

from django.urls import path

from .views import TwitterLogin


urlpatterns = [
    path('rest-auth/twitter/', TwitterLogin.as_view(), name='twitter_login')
]

然后转到链接: /rest-auth/twitter/ 并得到了请求:

{
    "access_token": "",
    "token_secret": ""
}

即这些数据必须从前端传输到 API 端点。

问题是:前端如何取acces_token和token_secret?

我不理解这个认证时刻。

如果某处有此问题的详细描述,或者在此资源上已经有人给出了此问题的答案 - 我将不胜感激链接。

【问题讨论】:

  • 请使用服务器端进行 twitter 身份验证,并在获得该用户的 access_token 时登录该用户一次。
  • 我可以使用哪个服务器端进行 Twitter 身份验证?
  • Django 是服务器端。请详细说明您在哪里调用其余 api。 ?
  • 我在浏览器中调用了rest api,来测试这个api的工作。可能是我忘记做某事了吗?但我在文档中没有找到任何相关信息
  • @savao 我面临着与您相同的问题。我在 django rest-auth 中看不到任何 url 来获取请求令牌。所以我创建了一个获取请求令牌的 api。然后我将它传递给前端,然后从前端我得到了 oauth_verifier,之后我调用了 django rest-auth 提供的 api,但它似乎不起作用。如果您不介意,请解释一下您是如何解决此问题的

标签: django django-rest-framework django-rest-auth


【解决方案1】:

在您的 Twitter 应用程序中,您需要确保“允许此应用程序用于使用 Twitter 登录?”选项已启用。

然后您可以按照这些说明获取令牌和令牌秘密https://dev.twitter.com/web/sign-in/implementing

allauth 文档中的相关部分:https://django-allauth.readthedocs.io/en/latest/providers.html#id2

【讨论】:

  • 好的,谢谢。我看到了这个指令,但我不明白,如何使用 django-rest-auth 执行这些步骤。例如。 “第 1 步:获取请求令牌要启动登录流程,您的应用程序必须通过向 POST oauth / request_token 发送签名消息来获取请求令牌。”据我了解,我必须将 POST 请求发送到 api.twitter.com/oauth/request_token 在请求中我必须放置数据,这是我在创建 Twitter 应用程序时获得的。但我不明白,我怎么能通过 django-rest-auth 来完成这个请求。我可以手动发送此请求。但我认为,django-rest-auth 必须这样做。
  • 初始步骤正在前端执行。您需要在您的网站上使用 Twitter 登录按钮,该按钮将验证您的登录状态并提示您使用 Twitter 登录。之后,它会返回您用于使用 django-rest-auth 执行社交登录的信息。一些提供商(如 Facebook)提供了所有必需的小部件,但对于 Twitter,您似乎需要手动实现它。以下是浏览器登录的步骤:dev.twitter.com/web/sign-in/desktop-browser
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-15
  • 2017-09-12
  • 2017-12-29
  • 2017-04-20
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
相关资源
最近更新 更多