我有一个应用程序,它是服务器上的 Node + Express + Passport 和客户端上的 jQuery + Backbone.js。客户端在 URL 中使用哈希标签,但对于某些功能,用户登录很重要。
我希望可以通过 URL 访问该应用程序,例如http://mydomain.com/app#cone/waffle/flavor/mint/toppings/sprinkles
:
- 如果用户已经登录,他们会直接访问请求的 URL,没有任何麻烦
- 如果用户尚未登录,他们会转到
/login
然后转到请求的 URL
在这个 SO 帖子之后, Node.js Passport 的 Google 策略上的自定义 returnUrl,我有它,所以
- 如果他们已经登录,他们会直接访问 URL、哈希标签和所有
- 如果他们没有被记录,它会将他们带到登录页面,然后到请求的 url,但是......
登录后似乎从重定向的原始 URL 中删除了哈希参数。
将哈希参数重定向到原始目的地时,有什么方法可以保留它们?
从这篇文章,从请求 url 获取哈希参数,我了解到哈希标签在服务器上不可用,这是使用哈希标签的全部意义所在。
所以我怀疑这是不可能的。也许以某种方式在本地缓存参数并在重定向时检索它们,比如说[original URL minus hastags] + #use-cached-params
?