Как перенаправить арендатора на домашнюю страницу поддомена после того, как пользователь может войти в систему в публичной схеме
Мне нужно перенаправить на домашнюю страницу без логина в поддомене после логина в публичном арендаторе. Это означает, что предположим -
публичным доменом является : logic.com
поддомен является : tenant1.logic.com. Я попытался войти в публичный домен (logic.com/login), поэтому теперь мне нужно перенаправить на главную страницу поддомена (tenant1.logic.com/home). Без логина поддомена
def login_user(request):
if request.method == 'GET':
return render(request, 'users/login-user.html', {'form': AuthenticationForm()})
else:
user = authenticate(request, username=request.POST['email'], password=request.POST['password'])
if user is None:
return render(request, 'users/login-user.html', {'form': AuthenticationForm(), 'error': 'Username and '
'password did not '
'match'})
else:
client = Client.objects.filter(owner=user).first()
with schema_context(client.schema_name):
login(request, client.owner)
host = request.META.get('HTTP_HOST', '')
scheme_url = request.is_secure() and "https" or "http"
url = f"{scheme_url}://{client.slug}.{host}"
return HttpResponseRedirect(url)
Что я могу сделать, если кто-нибудь знает об этом?
Заранее спасибо
Также я добавил установку приложения из настроек
Думаю, вам просто нужно добавить:
SESSION_COOKIE_DOMAIN=".logic.com"
в вашем settings.py для разрешения всех поддоменов для сессии. Больше информации в документации django: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-SESSION_COOKIE_DOMAIN
Edit: я не видел вашей правки, так что вы уже установили настройки opt и это не работает. Tenant_user, похоже, использует бэкенд django по умолчанию, поэтому он будет работать с настройками. Вы заменили бэкенд?