如何在login后将用户导向search结果?

我正在开发一个简单的应用程序,允许用户致力于满足ups。 他们可以在不login的情况下search本地聚会,但会被引导至login页面。 成功login后,是否有办法将用户导向search结果?

我目前正在使用护照。

到目前为止,我还没有尝试太多,因为我习惯使用..

res.redirect('back'); 

但是这个项目需要用户在login后不必重新search。

由于在问题中没有太多的代码可以查看,我会尝试用几种不同的scheme来解决这个问题。 这是一般策略,可以应用于任何web栈,而不仅仅是node.js和express。 希望能帮助到你。

login表单,与search结果在同一页面上:

  1. 如果你有所有的参数,你需要重新创build的searchURL如something.com/search/searchtermsomething.com?query=searchterm ,那么当用户login时,作为POSTparameter passingURLlogin参数。 然后当用户res.redirect(search_url);时,可以使用res.redirect(search_url);

  2. 如果从您的search页面的url,您不能重新创buildsearch结果只是forms的url,那么你需要有search参数。 在这种情况下,在loginPOST请求期间,将search查询作为POSTparameter passing。 成功login后,您可以再次redirect到具有search查询的search页面,如url.comquery=searchterm。 然后,您可以使用页面上的JavaScript通过阅读query参数来再次执行search。

login页面与search页面不同

在这种情况下,在您可以应用这两个场景之前,您需要先保存searchURL或参数,然后再向用户发送login页面。 现在,您可以像第一个场景那样传递参数,但在多跳场景中会变得很复杂。 在这种情况下,您可以使用searchurl或参数删除会话cookie ,并在login后使用redirect指示符。 您现在可以在成功login后使用会话中的信息来使用前两种策略中的任何一种redirect使用。

如果你的后端只是networking服务

那么很可能你的应用程序是一个带有多个路由的单页面应用程序,比如由Web服务支持的Angular应用程序。 在这种情况下,您也可以像以前一样应用相同的策略,但是在login之前,不要使用会话,而只需将相同的信息写入HTML5本地存储 。 login后,只需使用存储中的信息重新创buildsearch页面即可。

当未login用户进行search时,可以将search参数保存在本地存储中 ,并将用户redirect到login页面。

现在,当用户login后登陆到redirect页面时, 请检查本地存储器中的search参数 ,并相应地更新search结果。然后清除本地存储器中的search参数 ,以便下次用户login时search任何东西,他没有得到以前的search结果。