ExpressJS-使路由只能从内部重定向访问



我有一个ExpressJS应用程序,其中有一些路由在输入url时不想使用,只有当我从代码重定向到它们时,它们才应该使用。

意思是,如果用户键入";myapp.com/url";它不应该起作用。但如果我在代码中添加res.redirect("/url"(,它就可以使用

基本上你不能阻止客户端向端点发送HTTP请求(你不能让它"不工作"(。话虽如此,您的需求与使用JWT的登录逻辑没有太大区别。

您可以使用JWT设置客户端可以访问哪些端点。如果不允许客户端访问,您将把他重定向到另一个页面。

请参阅:https://github.com/auth0/express-jwt

更新(请参阅评论(:提交表单时,您应该为请求生成一个UUID。此UUID将是一个表示临时资源(视频(的令牌。

这就是API或多或少的样子。

  1. POST /submit
  2. GET /generated/:UUID
  3. GET /download/:UUID

您将需要实现一些逻辑来管理此临时资源。

这不可能作为res.redirect(https://expressjs.com/en/4x/api.html#res.redirect)接受已经通过URL可用的路由。如果您不想将路由发布到外部世界,您可以在显示或发送数据之前进行某种授权。

最新更新