Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

62 lines (42 sloc) 1.558 kb


Generate Django user authentication codes to verify email addresses and activate user accounts. Unlike other solutions django-userauthcode does not need to add additional tables or fields to your database.



url(r'^register/$', 'views.register', name='register'),
url(r'^activate/(?P<username>[a-zA-Z0-9_@+.-]+)/(?P<auth_code>[a-zA-Z0-9_-]+)$', 'views.activate', name='activate'),

# Persistend UserAuthCode generator
from userauthcode import UserAuthCode
uac = UserAuthCode(settings.SECRET_KEY)

def register(request):


    username = form.cleaned_data['username']
    email = form.cleaned_data['email']
    password = form.cleaned_data['password']

    user = User.objects.create_user(username, email, password)
    user.is_active = False

    auth_code = uac.auth_code(user)

    r = reverse('activate', kwargs={'auth_code': auth_code, 'username': username })
    url = request.build_absolute_uri(r)

    send_mail('Activation Link', url, '', [email,], fail_silently=False)


def activate(request, username, auth_code):
        user = User.objects.get(username=username)
    except User.DoesNotExists:
        raise Http404

    if uac.is_valid(user, auth_code):
        user.is_active = True, _('Your account has been activated. You can now use your username and password to login.'))
        return redirect('/');

    raise Http404
Jump to Line
Something went wrong with that request. Please try again.