1

我有一个关于应用程序和 Web 浏览器之间的会话维护的查询。

我正在开发一个 iPhone 应用程序,并且该应用程序还有一个网站(在 wordpress 中)相同。

我的问题是,如果他/她从同一移动设备登录应用程序,是否可以在移动设备的网络浏览器中显示用户登录?

简而言之,我想知道这个会话存储在哪里?在应用程序中还是在设备中?如果它在设备中,那么我如何检查网络浏览器?

4

1 回答 1

4

Cookie 是按应用程序存储的,而不是按设备存储的。Safari 有自己的沙箱,而每个原生应用程序都在自己的沙箱中运行,否则 Safari 的安全模型会受到损害。

在 OS X 中,cookie 存储在所有应用程序之间共享;在 iOS 中,cookie 存储是 per-app
参考:关于 URL 加载系统

因此,对于您的方案,这就是您应该能够使其工作的方式(虽然我还没有尝试过):

  1. 在您的移动应用程序中,在 Safari 中打开网站。发送一个 HTTP 标头以告诉 Web 服务器此命中来自您的本机应用程序
  2. 如果您已经通过 Safari 登录,那么您的服务器将识别用户。编码您的服务器以发回重定向响应(仅在请求来自本机应用程序的情况下)。此重定向响应将包含一个会话 cookie / auth_token。此外,重定向位置将使用 iOS 自定义 url 方案,例如myapp://mydashboard
  3. 在您的本机应用程序中,将应用程序注册为该自定义 url 的处理程序,以便它可以适当地捕获和处理重定向
  4. 在来自本机应用程序的后续请求中,发送会话 cookie / auth_token

希望能帮助到你。

于 2013-11-19T06:06:31.517 回答