gpt4 book ai didi

javascript - Hapijs 在身份验证之前验证参数

转载 作者:行者123 更新时间:2023-11-28 18:56:26 26 4
gpt4 key购买 nike

我对 Hapi 如何处理验证感到有点困惑,根据请求生命周期 ( http://hapijs.com/api#request-lifecycle ),参数/查询的验证仅在身份验证完成后发生。

这样做有意义吗?例如,我正在开发一个公共(public) API,但如果请求参数无效,我不想执行所有身份验证逻辑。

通过以下验证说出请求:

validate: { 
name: Joi.string().required()
}

当请求由于 name 未发送而无效时,为什么 API 还要经历验证用户身份的麻烦?

或者这只是我误解了请求生命周期?

最佳答案

当验证失败时,hapi 返回有关验证失败原因的信息。在您的示例中,路由需要一个名为 name 的参数。出于安全原因,您可能不想告诉未经身份验证的用户此路由需要此参数。这泄露了很多信息,对吗?

就我个人而言,我认为首先进行身份验证有几个原因:

  1. 更重要的是告诉用户他们无权访问端点,或者他们的请求无效?我认为授权更重要。

  2. 出于安全原因,请勿透露超出绝对必要的信息。

  3. 一旦建立了身份验证方法,对请求进行身份验证的“工作量”是相同的,但请求之间的验证可能会有很大差异。一条路线可能有许多需要验证的参数。因此,如果您必须平均失败请求的成本,则身份验证可能比许多请求更便宜。 (请参阅 JWT 身份验证)

关于javascript - Hapijs 在身份验证之前验证参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33558739/

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