使用Django将用户登录到子域

时间:2017-04-08 13:50:37

标签: python django django-authentication

我正在使用Django使用django-tenant-schemas构建一个Web应用程序。我试图完成以下任务:

  • 主域名上的用户注册,example.com

  • 在后台,test.example.com创建了一个租户,该租户的用户

  • 用户被重定向到他的新子域test.example,并自动登录

我无法弄清楚如何记录用户。这是注册视图:

def register(request):
  if request.method == 'POST':
    form = RegistrationForm(request.POST)
    if form.is_valid():
        webshop = Tenant()
        webshop.domain_url = form.cleaned_data['name'] + '.localhost'
        webshop.schema_name = form.cleaned_data['name']
        webshop.save()

        with schema_context(form.cleaned_data['name']):
            f = form.cleaned_data
            user = CustomUser.objects.create_user(f['email'], f['password'], f['user_name'])
            send_registration_confirmation(user, form.cleaned_data['name'])

        redirect = 'http://' + form.cleaned_data['name'] + '.localhost:8000'
        return HttpResponseRedirect(redirect)

  else:
    form = RegistrationForm()

return render(request, 'register.html', {'form': form,})

如果我使用Django中的authenticatelogin函数,则用户将登录主域,但不会登录子域。

0 个答案:

没有答案