I like to use Google Accounts with App Engine and django. The django login_required decorator depends on the django auth model – so I rewrote it for use with Google Accounts authentication.
I’m not sure if it is better to cache the create_login_url or not, but this works well enough for now.
from django.http import HttpResponseRedirect from google.appengine.api import users def login_required(fn): """ checks to see if the user is logged in, if not, redirect to login """ def _dec(view_func): def _checklogin(request, *args, **kwargs): user = users.get_current_user() if user: return view_func(request, *args, **kwargs) else: return HttpResponseRedirect(users.create_login_url('/')) _checklogin.__doc__ = view_func.__doc__ _checklogin.__dict__ = view_func.__dict__ return _checklogin return _dec(fn)
Hey, thanks for the decorator. Also, I’ve changed:
return HttpResponseRedirect(users.create_login_url(‘/’))
to:
return HttpResponseRedirect(users.create_login_url(request.get_full_path()))
to return a user on a same page where he/she left to login.
Muchas gracias, me ha sido muy util