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に近い形で使えるようです.