Cordova 社交身份验证的自定义管道

Custom pipeline for Cordova social auth

我的 Django 服务器需要两个不同的登录进程。

应用程序用户的登录管道还必须生成一个令牌并将其 return 发送到 Cordova 应用程序。我应该如何着手创建并行管道。

因此,您的应用中有两种类型的用户:

1. User
2. CordovaUser

您需要为两个不同的用户提供两个不同的链接,并且您应该以某种方式在管道中知道其中一个是 CordovaUser

首先,在您的设置中,执行以下操作:

FIELDS_STORED_IN_SESSION = ['user_type'] 

那么链接将如下所示:

1. <a href="{% url 'social:begin' 'facebook' %}">Login as User</a>
2. <a href="{% url 'social:begin' 'facebook' %}?user_type=cordova">Login as CordovaUser</a>

然后自定义 create_user 看起来像这样:

def create_user(strategy, details, user=None, *args, **kwargs):
    if user:
        return {'is_new': False}

    fields = dict((name, kwargs.get(name) or details.get(name))
              for name in strategy.setting('USER_FIELDS',
                                           USER_FIELDS))
    if not fields:
        return

    user_type = strategy.session_get('type')

    if user_type != 'cordova':
        return {
            'is_new': True,
            'user': strategy.create_user(**fields)
        }
    else:
        return {
            'is_new': True,
            'user': create_cordova_user(**fields)
        }

然后,创建那个 create_cordova_user 方法,你就完成了。

希望对您有所帮助!