对用户进行身份验证


Python 留言板代码示例的这一部分展示了如何对用户进行身份验证并向登录的用户显示自定义问候语。

本页面是多页教程中的一页。如需从头开始并查看设置说明,请转到创建留言板

登录用户

MainPage 类定义了针对根路径 '/' 的 HTTP GET 请求的处理程序。该处理程序会检查用户是否已登录:

class MainPage(webapp2.RequestHandler):

    def get(self):
        guestbook_name = self.request.get('guestbook_name',
                                          DEFAULT_GUESTBOOK_NAME)
        greetings_query = Greeting.query(
            ancestor=guestbook_key(guestbook_name)).order(-Greeting.date)
        greetings = greetings_query.fetch(10)

        user = users.get_current_user()
        if user:
            url = users.create_logout_url(self.request.uri)
            url_linktext = 'Logout'
        else:
            url = users.create_login_url(self.request.uri)
            url_linktext = 'Login'

        template_values = {
            'user': user,
            'greetings': greetings,
            'guestbook_name': urllib.quote_plus(guestbook_name),
            'url': url,
            'url_linktext': url_linktext,
        }

        template = JINJA_ENVIRONMENT.get_template('index.html')
        self.response.write(template.render(template_values))

如果用户已登录应用,则 get_current_user() 方法将返回 User 对象,并且应用会显示用户的昵称。如果用户还没有登录,则代码会将用户的浏览器重定向到 Google 账号登录屏幕。用户登录后,Google 账号登录机制会将用户重新转回应用。

如需了解详细信息,请参阅 Users API