【问题标题】:redirecting to some other page重定向到其他页面
【发布时间】:2014-03-13 23:21:51
【问题描述】:

我有一个包含三个页面的 Web 应用程序,一个是登录页面,第二个是联系页面,第三个是聊天页面。遍历的自然顺序是从一到二,从二到三。

需要登录(使用我们的网络服务)才能打开第二页和第三页。现在我们有一个要求,我们想直接从第三方应用程序打开第三个页面。

因此,假设如果从浏览器请求第三页并且在同一浏览器上登录(使用第一页)。然后我们需要直接显示第三页,否则显示用户第一页即登录页面。

要求与要求的facebook页面类似,可以通过点击gmail页面的链接打开,如果facebook用户已经登录,他可以直接看到所需的页面。

【问题讨论】:

    标签: javascript jsp web


    【解决方案1】:

    当我将这个功能写入我的上一个项目时,我通常会执行以下操作:

    1. 尝试加载页面
    2. 在任何页面加载开始时,首先检查的是登录状态
    3. 如果loggedIn == false,那么你将保存当前的url,并使用前一个url的参数重定向到登录 (mysite.com/login?url=/something/page3)
    4. 然后,当他们提交新的登录信息时,成功后您只需获取 url 参数的值,然后重定向到 那个值。

    但是,为了做到这一点,您可能需要已经解决以下问题:您的页面框架、基于每个页面的模块化代码(mvc 通常对此有所帮助)、可以轻松检查登录状态的登录功能,等等

    【讨论】:

    • 那么,我们是否必须将登录状态存储在服务器的内存中?假设有多个客户端使用不同的凭据访问我的页面,那么我应该如何做所有这些事情。我的意思是会话 ID 肯定是唯一的,但是除了会话 ID 之外,我们应该保留一些其他信息,例如浏览器/IP/用户 ID 等,并制作一个唯一标识符。此外,我们需要运行一个计时器来使会话到期。请建议我们是否需要所有这些东西。
    • 您最好不要让您的应用程序无状态,并将您的身份验证状态作为加密令牌存储在客户端的 cookie 中。这样它真的很容易检查,并且 cookie 的到期是自动发生的,因为它需要给它一个到期日期。此外,这意味着您不必担心在多台服务器上处理会话 id...就像使用云应用程序一样
    猜你喜欢
    • 2017-05-01
    • 2012-03-16
    • 2018-07-10
    • 2023-04-09
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    相关资源
    最近更新 更多