Cordova 社交身份验证的自定义管道
Custom pipeline for Cordova social auth
我的 Django 服务器需要两个不同的登录进程。
- 网站用户登录(我已经有了)
- 应用程序用户登录 - Cordova InAppBrowser
应用程序用户的登录管道还必须生成一个令牌并将其 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
方法,你就完成了。
希望对您有所帮助!
我的 Django 服务器需要两个不同的登录进程。
- 网站用户登录(我已经有了)
- 应用程序用户登录 - Cordova InAppBrowser
应用程序用户的登录管道还必须生成一个令牌并将其 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
方法,你就完成了。
希望对您有所帮助!