应该先验证什么令牌或参数?

What should be validated first token or parameters?

假设我的应用程序中有 2 条路由:

所以,我的问题是,如果用户没有为路由 /divide 提供令牌持有者和参数,我应该 return 401 还是 400?

有两件事让我担心

这种情况下的最佳做法是什么?

谢谢。

嗯,看起来像 "opinion" 问题,但我会回答。 您需要 return 401,因为授权是您应该做的第一件事。只有用户可以访问资源,我们才能继续处理。

未经授权,您不得以任何方式处理任何其他内容。否则,为什么会有 authentication/authorization 呢?如果您在用户未经授权的情况下处理内容,您基本上就会遇到安全漏洞。显然,对于示例函数来说,这似乎不是什么大问题,但这就是它的要点。

所以你应该return 401。

如果遇到DDoS问题,通过不同顺序处理无法解决,您仍然需要检查所有令牌。即使您不这样做,也有人可以对您的 service/API 进行 DDoS 攻击。还有其他(API 管理)解决方案,如节流、白名单、速率限制等。