首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Google引擎(tipfy)的模板中访问用户的OpenID信息

在Google引擎(tipfy)的模板中访问用户的OpenID信息
EN

Stack Overflow用户
提问于 2011-03-30 02:07:13
回答 1查看 190关注 0票数 0

我正在使用内置到Google引擎中的OpenID身份验证,并试图使当前在用户信息中签名的在模板中自动获得

手动执行该操作可能如下所示:

代码语言:javascript
复制
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

我不想在每个请求处理程序中编写这段代码,因此希望能够添加某种中间件来处理它(我主要是在这里猜测):

代码语言:javascript
复制
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是如何工作的,但不太明白。

干杯。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-30 02:35:09

您可以创建RequestHandler的子类,该子类在__init__上自动检索当前用户。此外,还可以向该子类添加方法以自定义模板呈现。我不认为中间件是解决这个问题的正确方法。

代码语言:javascript
复制
from google.appengine.api import users
from tipfy import RequestHandler
from tipfy.ext.jinja2 import render_response

class UserPageHandler(RequestHandler):
    def __init__(self, app, request):
        super(UserPageHandler, self).__init__(app, request)

        self.user = users.get_current_user()

    def user_response(self, template_name):
        return render_response(template_name, user=self.user)

def WhateverHandler(UserPageHandler):
    def get(self):
        return self.user_response('template_name.html')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5481106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档