使用 Grails 开发 Google App Engine 应用
2010-06-24 00:00:00 来源:WEB开发网由于数据存储区有别于关系型数据库,所以 GAE 对事务的使用有如下限制:
如果要在一个事务中控制多个实体,需要将这些实体归属于一个实体组;
事务会针对实体组设置数据存储区操作,且所有操作都会以组的形式进行。如果事务失败,则全部操作会滚;
缺省情况下,GAE 会在创建实体时,为实体分配实体组;
withTransaction 方法中,不能对多个具有不同父实体的实体进行操作;
查询操作不能在事务中进行。
用户验证
GAE 应用的用户信息可以自定义实体来进行维护。这跟传统的方法没什么区别,这里就不赘述。
这里要讲的是在 GAE 应用中如何使用 Google 的帐户信息。GAE 提供了相应的 API 能够检测到当前用户是否以 Google 帐户登录,并且可以将用户重定向到 Google 帐户登录页面,以便登录或新建一个帐户。在 Google 用户登录到应用程序时,应用程序可以访问 Google 用户的电子邮件地址。
GAE 提供了如下用户 API:
com.google.appengine.api.users.UserServiceFactory:创建 UserService;
com.google.appengine.api.users.UserService:构造用户登录或退出的网址,以及检索有关当前登录用户的信息;
com.google.appengine.api.users.User:这是一个特定用户,通过这个对象,能够获取到 Google 帐户的电子邮件地址和用户的 Nickname。
具体用法如下:
获取 UserService 对象
UserService userService = UserServiceFactory.getUserService();
登录
如果用户未登录,使用 UserService 创建一个模拟登录页面,用法如下:UserService. createLoginURL(String returnUrl), 这里 returnUrl 指的是在用户成功登录后自动重定向的页面。
更多精彩
赞助商链接