Я использую конвейер социальной аутентификации django, чтобы ввести пользовательскую функцию в процессе социальной аутентификации.
Я могу проанализировать параметры запроса (например, токен пользователя Facebook) внутри этой функции. Проанализированный токен будет служить входом для другой функции, расположенной в другом файле, и здесь возникает проблема: я не могу использовать его в другой функции
Мне нужно сослаться на глобальную переменную токена из другой функции в другом файле. Когда я объединяю file1.py и file2.py, он работает, но когда я хочу использовать проанализированный токен из createUser (...) file1.py в функции doSomething () file2.py, интерпретатор выдает ошибку, которая говорит: эта функция 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