如何使用python社交身份验证为多种类型的用户实现注册



我想为两种不同的用户类型(即消费者用户和供应商用户)创建两种不同注册机制。使用python社交身份验证最简单的方法是什么?

为了集中讨论,假设有两个注册页面:example.com/consumer-signupexample.com/vendor-signup。这个问题归结为我如何将每个页面的值传递到社交身份验证管道或像facebook这样的身份验证程序,以便在身份验证完成后检索相同的值。

感谢

您可能希望使用SOCIAL_AUTH_FIELDS_STORED_IN_SESSION来配置可以传递到socialauth_begin端点的查询参数。然后,您可以在SOCIAL_AUTH_PIPELINE中检索该值,并访问该值的request.session。

类似于:

您的设置

SOCIAL_AUTH_FIELDS_STORED_IN_SESSION = ('user_type', )

您的登录模板

a href="{% url socialauth_begin '[backend]' %}?user_type=vendor">Sign-in as Vendor</a>

您的管道阶段

def set_user_type(strategy, details, response, user=None, is_new=False, *args, **kwargs):
    user_type = strategy.session.get('user_type')
    if user_type == 'vendor':
        ...

最新更新