12

我正在编写一个 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 上 有一些关于这个问题的讨论。基本上,还没有内置功能。我将创建一个只处理 Facebook 的自定义解决方案(因为这就是我在我的应用程序中使用的全部内容)。如果可行,我稍后会在这里发布我所做的。

4

2 回答 2

1

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

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

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

于 2013-10-17T14:38:16.663 回答
0

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

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

于 2013-09-01T07:04:56.413 回答