登录后如何引导用户搜索结果?

时间:2017-11-09 01:26:51

标签: javascript node.js express

我正在开发一个简单的应用程序,允许用户提交会议。他们可以在不登录的情况下搜索本地聚会,但会被定向到登录页面。成功登录后,有没有办法将用户引导到他们的搜索结果?

我目前正在使用护照。

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

res.redirect(‘back’);

但是这个项目要求用户在登录后不必重新搜索。

2 个答案:

答案 0 :(得分:0)

由于您在问题中没有太多代码可供查看,我将尝试用几种不同的方案来回答您可以实现此目的。这是一般策略,可以应用于任何Web堆栈,而不仅仅是node.js和express。希望它有所帮助。

登录表单,与搜索结果位于同一页面:

  1. 如果您拥有所有参数,则需要在something.com/search/searchtermsomething.com?query=searchterm等网址中重新创建搜索,然后在用户登录时,将该网址作为POST参数传入以及登录参数。然后,当用户登录时,您可以使用res.redirect(search_url);

  2. 如果您的搜索页网址无法通过网址重新创建搜索结果,那么您需要拥有搜索参数。在这种情况下,在登录POST请求期间,将搜索查询作为POST参数传递。成功登录后,您可以再次重定向到搜索页面,搜索查询作为网址参数,例如something.com?query=searchterm。然后,您可以通过阅读query参数,使用页面上的javascript再次执行搜索。

  3. 登录页面与搜索页面不同

    在这种情况下,在应用这两种方案之前,您需要先保存搜索URL或参数,然后再向用户发送登录页面。现在,您可以传递第一个场景中的参数,但在多跳场景中会很快变得复杂。在这种情况下,您可以使用搜索网址或参数删除会话Cookie ,并在登录后指示需要重定向。现在,您可以在成功登录后使用会话中的信息,使用前两个策略中的任何一个重定向使用。

    如果你的后端只是网络服务

    那么您的应用程序很可能是具有多个路由的单页应用程序,例如由Web服务支持的Angular应用程序。在这种情况下,您也可以应用与以前相同的策略,但不要使用会话,而是在登录前将相同的信息写入 HTML5本地存储。登录后,只需使用存储中的信息重新创建搜索页面。

答案 1 :(得分:0)

当未登录的用户进行搜索时,您可以将搜索参数保存在本地存储中并将用户重定向到登录页面。

现在,当用户登录后登陆重定向页面时,检查本地存储中的搜索参数,并相应地更新搜索结果。然后清除搜索参数本地存储,这样当用户下次登录而没有搜索任何内容时,他就不会获得之前的搜索结果。