kay frameworkを触ってみる 2
ユーザー認証を使ってみます
設定
認証用のミドルウェアを有効にします
具体的にはsettings.pyに以下の設定を追加します
MIDDDLEWARE_CLASSES = (
'kay.auth.middleware.AuthenticationMiddleware',
)
ユーザー情報を格納するモデルを作成します
myapp.models
from google.appengine.ext import db from kay.auth.models import GoogleUser class MyUser(GoogleUser): pass
settings.py
AUTH_USER_MODEL = 'myapp.models.MyUser'
使い方
上記設定をすると、requestにuserが設定されます
| 状態 | 設定されるオブジェクト |
|---|---|
| ログイン | ログインユーザーのMyUser |
| 非ログイン | kay.auth.models.AnonymousUser |
userは以下のような属性/メソッドが使えます
| 属性 | 概要 |
|---|---|
| is_admin | 管理者であればTrue |
| メソッド | 概要 | |
|---|---|---|
| is_anoymous() | 非ログインであればTrue | |
| is_authenticated() | ログインであればTrue |
チュートリアルの通りindex.htmlに以下を書いて動かしてみます
<div id="greeting"> {% if request.user.is_anonymous() %} <a href="{{ create_login_url() }}">login</a> {% else %} Hello {{ request.user }}! <a href="{{ create_logout_url() }}">logout</a> {% endif %} </div>
非ログイン状態の場合はloginリンクが表示され、ログインするとHelloとlogoutリンクが表示されるようになりました。
非ログイン状態の場合に強制的にログイン画面に飛ばすには@login_requiredデコレータをview関数に適用します
from kay.utils import render_to_response from kay.auth.decorators import login_required @login_required def index(request): return render_to_response('myapp/index.html', {'message': 'Hello'})