【问题标题】:How to use the django-rest-framework-social-oauth2 with facebook Oauth2?如何将 django-rest-framework-social-oauth2 与 facebook Oauth2 一起使用?
【发布时间】:2016-08-27 20:42:14
【问题描述】:

我已阅读此处的文档: django-rest-framework-social-oauth2,但对我来说一切都不清楚(这是我第一次使用这个)。

最后它显示了如何设置使用 facebook Oauth2 的一些配置。文档上有这些信息:

您可以通过运行以下命令来测试这些设置:

curl -X POST -d “grant_type=convert_token&client_id=<client_id>&client_secret=<client_secret>&backend=facebook&token=<facebook_token>”  http://localhost:8000/auth/convert-token

此请求返回您应该在所有设备上使用的“access_token” 带有 DRF 的 HTTP 请求。这里发生的事情是我们是 将第三方访问令牌 (user_access_token) 转换为 用于您的 api 及其客户端的访问令牌(“access_token”)。 您应该在每次和进一步的通信中使用此令牌 您的系统/应用程序和您的 api 来验证每个请求和 避免每次都使用 FB 进行身份验证。

这是否意味着有了这个端点,我将能够以某种方式“覆盖”sing up 方法,在我的应用程序上创建一个用户,使用它在 facebook 上具有的相同 user_access_token?

如果这是正确的,据我所知。在我收到FB.getLoginStatus 响应后,我将能够在我自己的 API 端点上调用他的 facebook user_access_token 来引用登录用户(这在我的系统上也是一样的)。

我想我还需要将社交帐户令牌添加到用户模型中?

我说的对吗?

【问题讨论】:

    标签: python django oauth-2.0 django-rest-framework python-social-auth


    【解决方案1】:

    我可以使用来自 facebook 的测试令牌对其进行测试,它的行为正如我在问题中所写的那样。

    【讨论】:

    • 您是如何获得访问令牌的?我假设客户 ID 和客户端密码是我们在注册我们的应用程序后从 fb 获得的。请帮忙
    • @AjaySingh 你可以使用facebook documentation 发出一个javascript请求,它会给你一个access_token来测试你的后端。是的,client_secretclient_id 是您在注册应用后获得的。
    • 我想为此使用 django-rest-framework-social-oauth2,但由于我的项目没有任何指向 url "localhost:8000/auth/convert-token" 的路由,它一直在获取 404 我需要在我的 urls.py 中添加一些东西?
    • @AjaySingh 查看他们的github documentation。我在那里提出了两个问题,并以某种方式解释了我的实现。我不知道你的情况是什么,但这里有问题Issue 1Issue2
    • @AjaySingh 我不知道你在做什么,但你必须设置一些配置。此外,如果您没有在它们上设置正确的播放负载,某些端点会回答 404。
    猜你喜欢
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 2015-04-29
    • 2023-02-06
    • 2018-01-29
    • 2017-02-19
    • 2014-12-08
    • 2019-11-25
    相关资源
    最近更新 更多