Cordova社会认证的自定义管道

时间:2015-08-18 07:06:59

标签: python django cordova pipeline python-social-auth

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

  • 登录网站用户(我已经有了这个)
  • 登录应用用户 - Cordova InAppBrowser

应用用户的登录管道也必须生成令牌并将其返回给Cordova应用。我该如何创建并行管道。

1 个答案:

答案 0 :(得分:2)

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

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方法并完成。

希望这有帮助!