Google App Engine用户服务如何在内部运作?

Tim*_*Tim 6 java authentication google-app-engine

我只是对Google应用引擎的用户服务如何运作感到好奇.我理解它的方式,登录状态的用户存储在cookie中.要获取cookie,必须有一个http servlet请求对象(至少对于java servlet).但是用户服务api不需要任何http servlet请求作为输入,那么如何让cookie检查用户是否已登录?

蒂姆

Rob*_*uin 3

在请求期间,用户设置由 Google 的 servlet 实现处理

[I]如果用户已登录并使用标准 servlet API 以及请求对象的 getUserPrincipal() 方法获取用户的电子邮件地址或 OpenID 标识符。

在登录过程中,该服务使用重定向来工作,类似于 OpenID 或 OAuth。查看整个登录过程中的 URL。

  1. 用户将被重定向到应用程序上由 App Engine 处理的 URL,如下所示:

    http://app.appspot.com/_ah/login?continue=http://app.appspot.com/dosomething

  2. 登录处理程序重定向到 Google 登录服务,如下所示:

    https://www.google.com/accounts/ServiceLogin?service=ah&continue=http://app.appspot.com/_ah/login%3Fcontinue%3Dhttp://app.appspot.com/dosomething&ltmpl=gm&ahname=Your+App+Name&sig=hf3322hdsk98fd8fh3u29hfh24as

  3. 您登录,然后 Google 将您重定向回应用程序引擎登录处理程序:

    http://app.appspot.com/_ah/login?continue=http://app.appspot.com/dosomething

    当 Google 重定向时,一些查询参数将传递给 App Engine 登录处理程序,内置登录处理程序将设置 cookie。

  4. 然后,您将被重定向到您指定的 URL,或者您“开始”的位置。就像是:

    http://app.appspot.com/dosomething