在节点API中设置回调URL

时间:2018-09-21 09:44:38

标签: javascript node.js url-routing

如何在节点中设置回调URL? 例如,假设我正在创建一个电子商务网站。如果用户在购买前未登录,则需要将example.com/buy重定向到example.com/login,一旦他们完成登录,我想将他们重定向到example.com/buy页面。我该如何实施呢?

谢谢

3 个答案:

答案 0 :(得分:2)

在重定向到登录页面(let someArr = [1,2,2,2,3,3,4,4,5,5,6,7,8,9] let resultArr = someArr.reduce((intermediateArr, item) => { if(!intermediateArr.includes(item)) { intermediateArr.push(item) } return intermediateArr; }, []) console.log(resultArr.toString()) // 1,2,3,4,5,6,7,8,9)时,将其当前URL添加到查询字符串中,并使用该查询在登录后将其重定向回到其上一页。

答案 1 :(得分:1)

考虑实现此目标的实际方法。关键在于登录表单的处理时间。用户成功登录后,您希望将其发送到/,但是如果他们尝试购买商品,则希望将其发送到/buy。那么如何存储先前的意图,以便服务器在重定向时可以读取它?

一个简单的选择是将GET参数添加到URL。您无需将它们发送到/login,而是将它们发送到/login?redirect=buy。然后,您使用不带<form>的{​​{1}},这将保留URL供节点处理。登录信息签出后,您只需检查是否存在action参数并采取相应措施即可。

另一种方法是将用户的意图存储在redirect参数中,并在适当的时间将其读回。

问题实际上变成了“我如何为在导航到新页面后仍然存活的用户存储信息,并且可以随时在服务器上阅读?”一旦从更普遍的问题中删除了特定的用例,就更容易找到现有的答案。

答案 2 :(得分:-3)

您必须使用令牌/ cookie在前端(Angular / react / Vue)技术中进行处理,然后将用户重新路由到与其相关的适当页面或URL

有关如何在前端Reference中处理路由

如果您正在使用服务器端呈现,请尝试Next.jsEJS