Thanks, I'm glad you like it. I can look into some kind of demo, although 
Authenticator support is pretty simple. The documentation already links to 
Google's URI scheme[1], which has all of the details. All you have to do is 
create a TOTP or HOTP device (usually the former), encode the key with base32, 
build a URI as documented, and render a QR code for the user to scan. 
Alternatively, the user can also type the base32-encoded key in manually.


[1] http://code.google.com/p/google-authenticator/wiki/KeyUriFormat
[2] https://pypi.python.org/pypi/qrcode


On Jun 28, 2013, at 10:23 AM, Jason Arnst-Goodrich <goodri...@gmail.com> wrote:

> I just stumbled on this and it looks absolutely amazing. I do have one 
> request though: can we get a sample project up that uses Google's 
> authenticator (or anything else).
> 
> This looks like the best solution for two factor authentication for Django 
> but I don't think many people will know where to start when it comes to using 
> it (myself included).
> 
> On Wednesday, September 12, 2012 1:27:26 PM UTC-7, Peter Sagerson wrote:
> I recently released a suite of packages to support two-factor authentication 
> in Django by way of one-time passwords.
> 
> The core package is django-otp, which defines the framework and provides all 
> of the shared APIs. Integration is possible at several levels, from low-level 
> APIs (devices_for_user(), match_token(), etc.); to an AuthenticationForm 
> subclass; to a replacement for Django's login view and an OTP-enabled admin 
> site. Other niceties include the otp_required decorator, an analog to 
> login_required. This is not an authentication backend: although it depends on 
> django.contrib.auth for modeling purposes, it operates independently of the 
> normal authentication machinery.
> 
> A given user may have zero or more OTP devices against which we can verify a 
> one-time password. The core project includes Django apps that implement 
> common devices such as HOTP and TOTP (compatible with Google Authenticator, 
> among others) and static passwords (typically used as backup codes). The 
> former include standard features such as tolerance and drift. Separately, 
> django-otp-yubikey provides support for YubiKey devices (locally or remotely 
> verified). django-otp-twilio provides support for Twilio's SMS service for 
> delivering codes by SMS. Implementing support for additional mechanisms is as 
> simple as subclassing an abstract model class and implementing a verification 
> method (and optionally a challenge method). Raw implementations of HOTP and 
> TOTP are provided for convenience along with a few other generally useful 
> utility functions.
> 
> As a companion to these, I've also released django-agent-trust, which uses 
> Django 1.4's signed key APIs to tag user-agents that the user has identified 
> as trustworthy. In other words, this implements the "This is a private/shared 
> computer" option one often sees on sensitive sites. Features include 
> revocation and expiration (both absolute and by inactivity; globally, 
> per-user, and per-agent). django-otp-agents is a project that glues together 
> django-otp and django-agent-trust to assign trust to user-agents by way of 
> two-factor authentication (one of the most common scenarios, it seems).
> 
> Documentation: django-otp, django-otp-yubikey, django-otp-twilio, 
> django-agent-trust, django-otp-agents
> Bitbucket: django-otp, django-agent-trust
> 
> As always, the as-is clause in the BSD license isn't kidding. It's early days 
> for these yet and while everything has been carefully documented and 
> unit-tested, not all of the code has had contact with the real world. 
> Feedback is always welcome. The Google group 
> https://groups.google.com/forum/#!forum/django-otp is available for 
> discussion and questions.
> 
> Thanks,
> Peter
> 
> -- 
> You received this message because you are subscribed to a topic in the Google 
> Groups "Django users" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/django-users/b47ONAEWFos/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to 
> django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at http://groups.google.com/group/django-users.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to