Я пытался посмотреть этот ответ , а также использовать сеансы django здесь .
Вход в систему с использованием моей собственной аутентификации работает нормально, но я хочу проверять токен при каждом запросе с промежуточным программным обеспечением, и я не могу понять, как сохранить токен, чтобы к нему можно было получить доступ как из промежуточного программного обеспеченияа также просмотры.
Я пытался сохранить переменную сеанса из своей серверной части аутентификации, но всегда получал бы ключевую ошибку при попытке доступа к ней из моих представлений.
Есть ли хороший способсделать это?
Спасибо!
class MyAuthBackend(object):
supports_inactive_user = False
supports_object_permissions = False
supports_anonymous_user = False
def authenticate(self, username=None, password=None):
# This makes a call to my API to varify login, then return token if valid. I need to make login_valid accessible to my middleware and views.
login_valid = auth.login(username,password)
if login_valid:
try:
user = User.objects.get(username=username)
except User.DoesNotExist:
user = User(username=username, password='never_used')
user.is_active = True
user.save()
return user
return None
def get_user(self, user_id):
try:
return User.objects.get(pk=user_id)
except User.DoesNotExist:
return None
class MyAuthMiddleware(object):
def process_request(self, request):
if not request.user.is_anonymous():
# API call to my backend to check if token is still valid. If not, return to login page.
token_variable = ???????????
if isTokenStillValid(token_variable):
return
else:
return HttpResponseRedirect('/accounts/login/?next=%s' % request.path)