如何使用社交认证在我的应用程序上注册用户?

时间:2015-05-11 11:49:59

标签: oauth python-social-auth

我允许用户通过facebook和username / passwd注册/登录。 因此,如果用户通过fb注册,那么如何保存"用户"没有用户名和密码的实例?

1 个答案:

答案 0 :(得分:0)

你有两个选择:

首先:在两个字段中都允许空值。

第二次:覆盖一些像这样的方法:

create_user中有一个名为pipeline的函数,它调用用户模型管理员的create_user。您可以自己覆盖该方法并创建密码:

def create_user(self, email, username, password, is_staff, is_superuser,
                 *args, **extra_fields):
    """
    Creates and saves a User with the given username and password.
    """
    now = timezone.now()
    if not username:
        username = ''  # or randomly generated string
    user = self.model(username=username, is_staff=is_staff, email=email,
                      is_active=True, is_superuser=is_superuser,
                      last_login=now, date_joined=now)
    user.set_password(password)   # this generates password
    user.save(using=self._db)
    return user

这将使用生成的用户名和密码保存用户。你可以随意改变它。