LOGIN_URL = '/login-form/'
LOGIN_REDIRECT_URL = '/logged-in/'
+ LOGIN_ERROR_URL = '/login-error/'
Check Django documentation at `Login url`_ and `Login redirect url`_
""").render(Context({'user':user})),
content_type='text/html;charset=UTF-8')
+
+def error(request):
+ return HttpResponse(Template(
+ """
+ <html>
+ <head>
+ <title>Error</title>
+ </head>
+ <body>
+ <h1>Error!</h1>
+ <p>Sorry but some error made you impossible to login</p>
+ <a href="/">Homepage</a>
+ </body>
+ </html>
+ """).render(Context()),
+ content_type='text/html;charset=UTF-8')
+
def logout(request):
auth_logout(request)
return HttpResponseRedirect('/')
SOCIAL_AUTH_FORCE_RANDOM_USERNAME = False
SOCIAL_AUTH_DEFAULT_USERNAME = 'socialauth_user'
SOCIAL_AUTH_COMPLETE_URL_NAME = 'social:complete'
+LOGIN_ERROR_URL = '/login/error/'
from django.conf.urls.defaults import *
from django.contrib import admin
-from app.views import home, done, logout
+from app.views import home, done, logout, error
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', home, name='home'),
url(r'^done/$', done, name='done'),
+ url(r'^error/$', error, name='error'),
url(r'^logout/$', logout, name='logout'),
url(r'', include('social_auth.urls', namespace='social')),
url(r'^admin/', include(admin.site.urls)),
user = backend.auth_complete()
if user and user.is_active:
login(request, user)
- return HttpResponseRedirect(request.session.pop(REDIRECT_FIELD_NAME,
- settings.LOGIN_REDIRECT_URL))
+ url = request.session.pop(REDIRECT_FIELD_NAME,
+ settings.LOGIN_REDIRECT_URL)
+ else:
+ url = getattr(settings, 'LOGIN_ERROR_URL', settings.LOGIN_URL)
+ return HttpResponseRedirect(url)