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

时间:2020-08-10 10:19:05

标签: javascript node.js express routes

我有一个ExpressJS应用,其中包含一些我在输入url时不希望使用的路由,只有当我从代码中重定向到它们时,它们才应该工作。

意思是,如果用户键入“ myapp.com/url”,它将不起作用。但是,如果我在代码中添加res.redirect(“ / url”),它就会起作用

2 个答案:

答案 0 :(得分:2)

基本上,您不能阻止客户端向端点发送HTTP请求(您不能使其“不起作用”)。话虽如此,您的要求与使用JWT的登录逻辑没有什么不同。

您可以使用JWT设置客户端可以访问的端点。如果不允许客户,则将其重定向到其他页面。

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

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

这就是API看起来或多或少的样子。

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

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

答案 1 :(得分:1)

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