使用 facebook 数据的 django 社交身份验证

标签 django facebook authentication

我设法安装了 django-social-auth,但我错过了我可以实际使用从 facebook 获得的数据来创建用户名并可能使用个人资料图片或关于字段的时刻......

我知道在 django-social-auth 的设置中我可以设置 SOCIAL_AUTH_DEFAULT_USERNAME = 'new_social_auth_user' 和 FACEBOOK_EXTENDED_PERMISSIONS = [...] 但我不知道在我的代码中我可以在哪里插入这些数据,所以不拥有随机用户名。

最佳答案

django-social-auth 实现了一个管道(这似乎是一个新功能,因为当我尝试它时它不存在)允许您在某些步骤中插入自定义函数认证的过程。查看the docs here , 和一个 example pipline function这里。

所以你可以写一个函数:

SOCIAL_AUTH_PIPELINE = (
    'social_auth.backends.pipeline.social.social_auth_user',
    'social_auth.backends.pipeline.associate.associate_by_email',
    'social_auth.backends.pipeline.user.get_username',

    'app.pipeline.custom_create_user',

    'social_auth.backends.pipeline.social.associate_user',
    'social_auth.backends.pipeline.social.load_extra_data',
    'social_auth.backends.pipeline.user.update_user_details'
)

您的 custom_create_user 函数包装了默认的 create_user 并根据您自己的需要创建用户名:

from social_auth.backends.pipeline.user import create_user
def custom_create_user(request, *args, **kwargs):
     user = *kwargs.get('user', None)
     # Do something with username
     return create_user(request, args, kwargs)

关于使用 facebook 数据的 django 社交身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9351922/

相关文章:

python - Facebook Python-SDK VS。 Facebook ?

Facebook 粉丝页面 API/主页

android - 关于 SMS Retriever API 的哈希键

google-app-engine - Google App Engine - Google 用户服务是否等于 SSL?

authentication - laravel sentry 重定向::预期不起作用

python - Django - 服务用户上传的图片

python - 将 excel 文件从主目录保存到 Django 中的数据库模型

python - 重命名 Django 模型

django - 允许RabbitMQ服务器连接

android - 检查是否通过移动网络登录到 Facebook 应用程序(移动)