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'})