【问题标题】:How to integrate social-auth in my project如何在我的项目中集成社交身份验证
【发布时间】:2011-12-13 14:47:18
【问题描述】:

我想使用 social-auth 通过社交网站提供注册/身份验证。我一直在尝试了解如何使用social-auth,但我一直无法超越安装依赖项和配置后端。

我基本上是 Django 的新手,在论坛上发帖之前我已经努力理解了。也许是因为我对它不是很熟悉,这就是我没有成功的原因。任何人都可以向我指出有关如何使用社交身份验证的教程。这也将帮助我集成其他应用程序。

更新:

虽然下面给出的答案解决了我的问题,但我只想分享一下我最终使用 django-allauth 而不是 social-auth。并且最新版本的 django-allauth 似乎是最好的 Django 身份验证应用程序。

【问题讨论】:

    标签: django


    【解决方案1】:

    从文档中看不清楚。

    你需要在 Twitter/Facebook/任何你想使用的地方创建应用程序。

    他们会给你 api key 和 api secret。

    遵循这些参考 socialauth 文档的基本步骤:

    1. 点安装
    2. 为已安装的应用添加社交身份验证
    3. 复制 AUTHENTICATION_BACKENDS
    4. 填写api key和api secret
    5. 添加社交身份验证网址模式
    6. 配置身份验证和关联完整 URL 名称 (SOCIAL_AUTH_COMPLETE_URL_NAME)
    7. 上下文处理器
    8. 同步数据库

    现在,文档没有告诉您的是在您的登录模板中添加链接:

    Login with <a href="{% url socialauth_begin 'twitter' %}">Twitter</a>
    

    应该可以。

    【讨论】:

    • 我已经完成了你指出的所有事情。现在,当我创建登录页面并添加您要求我添加的行时,我收到以下错误 Reverse for 'complete' with arguments '(u'twitter',)' and keyword arguments '{}' not found 你能告诉我什么我做错了吗?
    • 哦,很抱歉,我忘了一步:将 SOCIAL_AUTH_COMPLETE_URL_NAME = 'socialauth_complete' SOCIAL_AUTH_ASSOCIATE_URL_NAME = 'socialauth_associate_complete' 添加到您的代码中
    • 实际上,正如他们在规范中给出的那样,我使用的是 SOCIAL_AUTH_COMPLETE_URL_NAME = 'complete',这导致了一个问题。现在问题是,当我使用 /login/twitter 时,我的页面似乎正在处理,但随后它重定向到登录错误页面,你能告诉我这是为什么吗?是因为我使用的是本地主机服务器吗?请帮忙
    • 在 cmets 上调试程序很困难,但怀疑是坏的 api 或秘密。此外,请记住在 Twitter 应用程序设置中填写回调 URL 字段。对于网络应用程序是强制性的(不管你在里面放了什么,只要它不为空)。
    • @Weaver,如果您访问上面 Tomek 帖子中的 FB 或 Twitter 新应用链接,他们会向您发放 API 密钥,然后根据 social-auth 文档,您需要将这些变量添加到您的 settings.py 文件中,如下所示:TWITTER_CONSUMER_KEY = '' TWITTER_CONSUMER_SECRET = '' FACEBOOK_APP_ID = '' FACEBOOK_API_SECRET = ''
    猜你喜欢
    • 2015-12-05
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    相关资源
    最近更新 更多