我正在使用django社交身份验证管道在社交身份验证过程中引入自定义功能。 我能够解析此函数内的请求参数(例如:facebook用户令牌)。解析的令牌将用作位于另一个文件中的另一个函数的输入,这可以解决问题:我不能在另一个函数中使用它
我需要从另一个文件中的另一个函数引用全局令牌变量。当我合并file1.py和file2.py时,它可以工作,但是当我想在file2.py的doSomething()函数中使用来自file1.py的createUser(...)的已解析标记时,解释器抛出错误,提示该函数createUser带有参数,我必须定义它们,但是如何?
# settings.py:
SOCIAL_AUTH_PIPELINE = [
...
'MyApp.file1.createUser',
...
]
# file1.py :
from MyApp.models import FacebookUser
import file2
def createUser(backend, user, request, response, *args, **kwargs):
if backend.name == 'facebook':
global token
token = request['token']
if request['user_type'] == "facebookUser" and not FacebookUser.objects.filter(user_id=user.id):
FacebookUser.objects.create(user_id=user.id)
file2.doSomething()
elif FacebookUser.objects.filter(user_id=user.id):
file2.doSomething()
# file2.py :
from file1 import createUser
def doSomething():
myToken = createUser().token # <--- My problem is here. How can I access the global variable "token" from the createUser function in file1? The function createUser comes with arguments but how can I use it here?
return myToken