django-nopassword reached 1.0

Posted 03.10.2014 ยท 2 min read

I started the this project as way to understand django authentication backends about two years ago. I read a blog post by Ben Brown about password-less login and thought that it would a great case to learn custom django authentication backends.

A lot has changed since then and the project has moved from being an experiment to something useful. I myself use it in production on several sites. I have heard from others who also use it. I hope you all like some of the new features in this release.


The new features since last release

Rename the app to nopassword: This means that from this version installed apps in django should list nopassword not django_nopassword. In addition all imports need to point to nopassword not django_nopassword.

The possibility to customize code delivery: Most of the code in the EmailBackend has been moved to a new backend called NoPasswordBackend. The latter is not meant to be used on its own, but it will make it easier to create other backends similar to EmailBackend. With other words, it has become easier to send the login codes with other technologies like sms.

Verification of the user: django-nopassword uses user.is_active() to determine whether a user is still active or not. In this release we moved this into its own method, NoPasswordBackend.verify_user, which makes it easier to create your own logic to verify your users.

Django 1.7 support: Now it is tested and known to work with the released version of Django 1.7. Earlier it had just support for the beta 3.

Migrations: Support for both Django 1.7 migrations and South migrations. To use South it is necessary to use version the lastest version(1.0), since it is the only version that looks for migrations in south_migrations.


The test setup has also been changed to use tox. It makes it a lot easier to test specific django and python versions locally. I have to mention the new multi-dimensional configuration of environments. It makes it easier generate test environments for several python and django versions with all combinations.

If you use django-nopassword on any on your projects please let me know. I would love to hear about it.