gpt4 book ai didi

node.js - Passport.js + Express.js 验证后将用户转发到原始目的地

转载 作者:IT老高 更新时间:2023-10-28 23:20:34 37 4
gpt4 key购买 nike

我有一个应用程序,它是服务器上的 Node + Express + Passport 和客户端上的 jQuery + Backbone.js。客户端在 URL 中使用哈希标签,但对于某些功能来说,用户登录很重要。

我希望可以通过 URL 访问该应用,例如http://mydomain.com/app#cone/waffle/flavor/mint/toppings/sprinkles 这样:

  • 如果用户已经登录,他们会直接访问请求的 URL,没有任何麻烦
  • 如果用户尚未登录,他们会转到 /login,然后转到请求的 URL

在此 SO 帖子之后, Custom returnUrl on Node.js Passport's Google strategy ,我有这样的

  • 如果他们已经登录,他们会直接访问 URL、哈希标签等
  • 如果他们没有被登录,它会将他们带到登录页面,然后到请求的 url,但是......

好像是在登录后重定向的原始URL中去掉了hash参数。

在将哈希参数重定向到原始目的地时,有什么方法可以保留它们?

来自这篇文章,Getting hash parameters from request url我知道哈希标签在服务器上不可用,这就是使用哈希标签的重点。

所以我怀疑这是不可能的。也许以某种方式在本地缓存参数并在重定向时检索它们,例如 [original URL minus hastags] + #use-cached-params

最佳答案

哈希参数仅用于浏览器,它们不会发送到服务器。不过,您可以使用此技术进行重定向、哈希标签和所有操作:

  • GET/some/page#with/hash
  • 登录了吗?然后渲染页面
  • 没有登录?渲染一个包含一些 JavaScript 的页面,比如“getHash.jade”
  • getHash.jade:复制完整的 URL,然后重定向到 '/login&redirect=' + originalURL
  • GET/login(现在您可以将哈希保存在服务器上并从那里获取)

关于node.js - Passport.js + Express.js 验证后将用户转发到原始目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14124932/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com