Я использую аутентификацию OpenID, встроенную в движок приложений Google, и пытаюсь сделать доступными в данный момент информацию о пользователе автоматически в шаблонах.
Выполнение этого вручную может выглядеть примерно так:
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
Есть идеи? Я пытался посмотреть, как работает SessionMiddleware, но не совсем понял.
Приветствие.