I'm working on a Django app and am authenticating users via a custom authentication. Authentication works great but when I return the rendering of the same page, Django just hangs. Essentially I have a POST request url auth digits
and if success I return the rendering of the current page jubi
. I've tried a HttpResponseRedirect and the server calls the GET request, but doesn't reload the page(maybe because it recognizes it is already on the page?).
urls.py
urlpatterns = [
url(r'^index/$', views.index, name='index'),
url(r'^jubi/$', views.jubi, name='jubi'),
url(r'^login/$', views.login, name='login'),
url(r'^logout/$', views.logout, name='logout'),
url(r'^auth_digits/$', views.auth_digits, name='auth_digits'),
]
views.py
def jubi(request):
return render(request, 'frontend/jubi.html',
{'user': request.user}, context_instance=RequestContext(request))
@csrf_exempt
def auth_digits(request):
apiUrl = request.POST.get('apiUrl', '')
credentials = request.POST.get('credentials', '')
dAuth = DigitsAuth()
user = dAuth.authenticate(apiUrl=apiUrl, credentials=credentials)
if user is not None:
user.backend = 'django.contrib.auth.backends.ModelBackend'
auth.login(request, user)
return render(request, 'frontend/jubi.html',
{'user': request.user}, context_instance=RequestContext(request))
else:
return HttpResponseRedirect('invalid')
jubi.html
{% if user.is_authenticated %}
<script>console.log("we are auth")</script>
{% else %}
<div class="load-login-form"></div>
{% endif %}