gpt4 book ai didi

Python 社交验证 : How to define a different username scheme?

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:33 24 4
gpt4 key购买 nike

Python Social Auth 中默认的用户名生成方案是采用经过身份验证的社交网络的用户名,如果已经采用,则向其添加一些随机值(或者是哈希值?)。

无论如何,我想改变这种行为,我想定义我自己的用户名生成方法。例如用户名+提供者+随机数。

想法?

最佳答案

您只需将 SOCIAL_AUTH_PIPELINE 中的 social.pipeline.user.get_username 替换为您自己返回生成的用户名的函数的路径。

例如:

project/myapp/settings.py

SOCIAL_AUTH_PIPELINE = (
'social.pipeline.social_auth.social_details',
'social.pipeline.social_auth.social_uid',
'social.pipeline.social_auth.auth_allowed',
'social.pipeline.social_auth.social_user',
'project.myapp.utils.get_username',
'social.pipeline.social_auth.associate_by_email',
'social.pipeline.user.create_user',
'social.pipeline.social_auth.associate_user',
'social.pipeline.social_auth.load_extra_data',
'social.pipeline.user.user_details',
)

项目/myapp/utils.py:

from social.pipeline.user import get_username as social_get_username
from random import randrange

def get_username(strategy, details, user=None, *args, **kwargs):
result = social_get_username(strategy, details, user=user, *args, **kwargs)
result['username'] = '-'.join([
result['username'], strategy.backend.name, str(randrange(0, 1000))
])
return result

在上面的函数中,我从 python-social-auth 模块调用默认的 get_username 方法,结果附加提供者名称和 0 到 1000 之间的随机数。

您可以查看social.pipeline.user.get_username on GitHub 的源代码.

关于Python 社交验证 : How to define a different username scheme?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23327814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com