【问题标题】:iOS App Engine Authentication CookieiOS App Engine 身份验证 Cookie
【发布时间】:2012-06-16 19:12:37
【问题描述】:

在我的 iOS 应用程序中,我有一个 WebView,它使用我的 GAE 应用程序进行身份验证。登录工作正常,我可以看到 cookie 数据。

我在验证后看到的示例 cookie 数据:(为简洁起见,ACSID 缩写)

=======
2012-06-16 10:00:13.784 FooApp[6342:12203] <NSHTTPCookie version:0 name:"ACSID" value:"AJKiYcGJTQ964S0JF7Rp5H" expiresDate:2012-06-30 13:57:59 +0000 created:2012-06-16 13:58:01 +0000 (3.61548e+08) sessionOnly:FALSE domain:"foo.appspot.com" path:"/" isSecure:FALSE>
=====

2 个问题..

  1. 是否检查 ACSID 的值足以证明身份验证?如果不是,我应该检查什么?
  2. 是否可以获取用户登录时使用的电子邮件地址?

谢谢! 乙

【问题讨论】:

    标签: ios google-app-engine authentication cookies uiwebview


    【解决方案1】:

    我不会依赖未记录的行为——如果您想知道用户是否已登录以及用户的电子邮件地址,请将该信息以 HTTP 响应的形式直接发送回您的客户端。

    没有说 ACSID cookie 的行为不会随意改变。

    【讨论】:

    • Moishe,也感谢您的回复,我会记住这一点。不过我想知道,如果用户未通过身份验证,是否还会创建 cookie?
    • cookie 是在用户登录 yourapp.appspot.com/_ah/login/?.... 时创建的。登录后,您必须为每个子序列请求存储 cookie。
    【解决方案2】:

    我从未尝试在 iOS 上执行此操作。但在 Android 上,我使用 App Engine Rest Client 进行身份验证。我看到他们为每个请求存储和恢复 cookie。所以我相信它肯定会在 iOS 上运行。

    我很难为每个请求都包含 ACSID cookie,但它确实有效。您必须确保它们确实位于服务器上的请求标头中。如果您成功通过应用引擎进行身份验证。您可以在 appstats 中查看 CGI 环境并查看身份验证信息。

    这里是应用引擎https://code.google.com/p/aerc/上的android客户端验证器的链接。你可以在 iOS 上看看并重新实现。

    如果您想要用户电子邮件地址,并且可以从应用引擎 users.get_current_user().email() 上的用户对象中获取它,并通过 http 请求从您的客户端应用程序请求它。

    希望对你有帮助

    【讨论】:

    • Cuong,感谢您的回复。我会玩弄你提到的。
    猜你喜欢
    • 1970-01-01
    • 2014-04-30
    • 2012-10-10
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2011-10-27
    • 2011-12-25
    • 2020-06-06
    相关资源
    最近更新 更多