【问题标题】:Common Session for application and web browser应用程序和 Web 浏览器的通用会话
【发布时间】:2013-11-23 06:13:16
【问题描述】:

我有一个关于应用程序和网络浏览器之间会话维护的问题。

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

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

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

【问题讨论】:

    标签: iphone wordpress web-services session session-variables


    【解决方案1】:

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

    在 OS X 中,cookie 存储在所有应用程序之间共享; 在 iOS 中,cookie 存储是针对每个应用的
    参考:About the URL Loading System

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

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

    希望对你有帮助。

    【讨论】:

    • 我认为用户必须依赖浏览器是不够的...就像它只能与 safari 一起使用...还有其他方法吗..?
    • 也许我无法正确传达解决方案。 Safari 将成为移动 Web 和原生应用程序之间的通用通信机制。除此之外,您将无法共享身份验证详细信息。确认身份验证后,用户应该能够继续在 Safari 或本机应用程序本身中使用 Web 资源。初始身份验证检查后,每个资源请求都不需要 Sarafi。
    猜你喜欢
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    相关资源
    最近更新 更多