Google アプリ エンジンに組み込まれている OpenID 認証を使用して、現在サインインしているユーザーの情報をテンプレートで自動的に利用できるようにしようとしています。
手動で行うと、次のようになります。
from google.appengine.api import users
from tipfy import RequestHandler
from tipfy.ext.jinja2 import render_response
def WhateverHandler(RequestHandler):
def get(self):
user = users.get_current_user()
return render_response('template_name.html', user=user)
# great, now I can use {{ user.nickname }} or whatever in the template
すべてのリクエスト ハンドラーにこのコードを記述したくないので、何らかのミドルウェアを追加して対処できることを期待しています (ここではほとんど推測しています)。
from google.appengine.api import users
class GoogleUsersMiddleware(object)
def post_dispatch(self, handler, response):
user = users.get_current_user()
# now somehow add user to the response?
return response
何か案は?tipfy の SessionMiddleware がどのように機能するかを調べてみましたが、よくわかりません。
乾杯。