【问题标题】:What is the right way to use django-allauth with tastypie?将 django-allauth 与美味派一起使用的正确方法是什么?
【发布时间】:2013-08-15 10:17:57
【问题描述】:

我正在编写一个 Django 应用程序,它使用 django-allauth 进行 Facebook 集成,并使用 django-tastypie 作为 iOS 应用程序的后端。 iOS 应用程序将使用本机 Facebook iOS SDK。除了网站之外,我还希望能够通过 iOS 应用注册和验证 Facebook 和非 Facebook 用户。

问题是 django-allauth 似乎没有可以从外部访问的 API。插入 allauth 功能的唯一干净方法似乎是通过 Django 模板标签。有没有办法可以公开此功能以与美味派一起使用?

Django-allauth 都是开源的,所以我尝试过解析代码。我最初的想法是在 iOS 端使用原生 Facebook SDK 对用户进行身份验证,然后手动填写 SocialAccount、SocialToken 的信息,并将 SocialAccount 添加到 SocialApp(这些都是 django-allauth 模型)。然而,这似乎是一个相当老套的解决方案。我想要一种在给定 Facebook ID 或类似名称的情况下干净地创建所有这些模型的方法。

更新:GitHub 上有一些discussion 与此问题有关。基本上,还没有内置功能。我将创建一个只处理 Facebook 的自定义解决方案(因为这就是我在我的应用程序中使用的全部内容)。如果可行,我稍后会在这里发布我所做的。

【问题讨论】:

    标签: python django tastypie facebook-ios-sdk django-allauth


    【解决方案1】:

    快速查看 django-allauth 表明他们正在使用 SocialAccount 模型来保存有关特定身份验证方法和社交帐户类型的数据。

    您需要创建一个基于 SocialAccount 模型的 API 端点。您需要在那里传递变量,例如:帐户类型(facebook、local、twitter 等)、社交身份验证提供者所需的其他身份验证变量。然后,在您的代码中,您可以创建 SocialAccount 模型实例,提供从 API 端点调用接收到的数据,并通过 django-allauth 触发相应的身份验证调用。最后你应该返回你的 auth 调用的结果。

    我认为仅将 django-allauth 用于本地/facebook 身份验证没有什么重要的理由,只需稍加努力,您就可以拥有各种社交身份验证提供程序。

    【讨论】:

      【解决方案2】:

      我使用requests 库来处理 facebook API 并且效果很好,我认为 Django 没有社交登录插件适用于其他人,但作者,如果你想认真做一些事情。

      附言。我使用 django-rest-framework 为移动应用构建了 rest 后端,还包括本地帐户登录和社交网站登录。

      【讨论】:

        猜你喜欢
        • 2018-04-10
        • 2013-01-02
        • 1970-01-01
        • 2020-08-27
        • 2020-07-10
        • 2020-09-29
        • 1970-01-01
        • 2012-05-12
        • 1970-01-01
        相关资源
        最近更新 更多