正在加载...

Google App Engine 入门:用户系统服务

五月 4th, 2008
(本文译自:Google App Engine Getting Started) Google App Engine 在其SDK中提供了很多有用的服务。其中之一就是用户系统服务,这个服务让我们可以轻松的集成Google的用户帐号系统,这样使用我们的应用的用户,就不需要注册单独的帐号,直接使用现有的Google帐号就可以登录了。 下面,我们为Hello word加入用户判断功能。

使用Users

重新编辑helloworld/helloworld.py, 将代码修改如下:
import wsgiref.handlers

from google.appengine.api import users
from google.appengine.ext import webapp

class MainPage(webapp.RequestHandler):
def get(self):
user
= users.get_current_user()

if user:
self
.response.headers['Content-Type'] = 'text/plain'
self
.response.out.write('Hello, ' + user.nickname())
else:
self
.redirect(users.create_login_url(self.request.uri))

def main():
application
= webapp.WSGIApplication(
[('/', MainPage)],
debug
=True)
wsgiref
.handlers.CGIHandler().run(application)

if __name__ == "__main__":
main
()
刷新页面,你会发现直接跳转到了本地模拟的Google登录页面了,在这个页面输入你的用户名,你的web应用程序就会为你生成一个 User 对象。 当你发布你的应用之后,这个程序将会直接跳转到真正的Google登录页面,等你登录成功后再跳转到你的程序页面。

The Users API

我们仔细查看一下代码:
user = users.get_current_user()
如果用户已经登录, get_current_user() 返回 User 对象,否则返回 None.
if user:
self
.response.headers['Content-Type'] = 'text/plain'
self
.response.out.write('Hello, ' + user.nickname())
如果用户已经登录,向登录用户显示一段欢迎信息
else:
self
.redirect(users.create_login_url(self.request.uri))
如果用户尚未登录, 调用 webapp 跳转到Google 帐号登录页面。这个跳转页面包含了登录成功后要返回的URL (self.request.uri),用户登录成功后,就会回到指定的页面了。 想了解更多信息, 请查看 the Users reference.

接下来...

我们的应用程序,已经实现了可以显示登录者的名字了,接下来我们将为它增加留言的功能。 下一章 处理表单数据.

相关阅读:



“Google App Engine 入门:用户系统服务” 共有8条留言

  • gnolux On

    请问,我用了micolog 上传到 google app eng 了,当我切换到管理面板时,需要登入,但我是用自已的域名和邮件地址(非gmail,申请了app套件)注册的gae,它现在只能用 gmail 来登入,如何解决? 还是有其它我没注意的地方?

  • healer On

    为什么搞个这么简单的计算.... ....
    楼主玩得很有瘾,就是不介绍Java的开发,,,这样有相当部分的人看着会累~~~~

  • holeo On

    ~这个功能用的很少~

  • dddd On

    asdasd

  • benben On

    请问登录的页面能不能转到中文界面

  • Sean On

    麻烦问下 我按照上边代码输入 怎么刷新出来成空白页面了呢?

  • 徐明 On

    当然可以不用Google Account进行登录了,不过这种情况下,需要自己处理所有的细节,比如cookie,已经判断用户是否登录等等。。。
    如果使用Google Account方式登录,就不需要处理任何东西了,效果和使用.net form authorization是一样的。

  • tony On

    我想問,能不用google account 作為登入嗎。
    還一個白痴問題,有像 .net 的form authorization 的操作嗎?
    還是,每一個頁面都要查一下用戶狀態呢?

    謝謝

我要留言


google reader 抓虾
bloglines my yahoo
哪吒 鲜果
* 更多订阅本站方式请看 订阅帮助