AppEngine Helper for DjangoでGoogleアカウントの認証を簡単にする

setting.pyで認証関係の設定を有効にする.以下の3カ所のコメントアウトを外します.

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
#    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware', # コメントアウトを外す
#    'django.middleware.doc.XViewMiddleware',
)

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.core.context_processors.auth', # コメントアウトを外す
    'django.core.context_processors.debug',
    'django.core.context_processors.i18n',
#    'django.core.context_processors.media',  # 0.97 only.
#    'django.core.context_processors.request',
)

ROOT_URLCONF = 'urls'

ROOT_PATH = os.path.dirname(__file__)
TEMPLATE_DIRS = (
    os.path.join(ROOT_PATH, 'templates')
)

INSTALLED_APPS = (
     'appengine_django',
     'test',
     'django.contrib.auth', # コメントアウトを外す
#    'django.contrib.contenttypes',
#    'django.contrib.sessions',
#    'django.contrib.sites',
)

templateでこんな感じで書く.

{% if user.is_anonymous %}
    <a href="{% auth_login_url %}">ログイン</a>
{% else %}
    こんにちは{{ user.username }}さん
    <a href="{% auth_logout_url %}">ログアウト</a>
{% endif %}

特定のビューでログインを強制するデコレータも使用可能.

from appengine_django.auth.decorators import login_required

@login_required
def add_event(request):
    # 省略

ほぼ通常のDjangoに近い形で使えるようです.