从单独的 Vue JS 前端使用 Hapi JS API。 request.payload 未定义

Consuming a Hapi JS API from a separate Vue JS Frontend. request.payload is undefined

我正在迈出 Hapi JS 的第一步。我的应用程序与 SQL 服务器数据库连接。

但是,我正在尝试将登录数据从 Vue CLI JS 前端发送到 Hapi JS Api,为此我使用了 axios。 Login 是一个“SELECT * FROM”查询,所以我在 axios 函数代码中放置了“get”。

这是有效的功能,但我无法通过 URL 发送密码,这不安全,使用 F12 您可以免费查看用户凭据是否加密。

而这是接收数据的Hapi JS路由。它是这样工作的,但我不值得这样做。我希望我的代码像这样工作:

axios 函数

Hapi JS 路由用“request.payload”代替“request.query”

但是当我尝试这个时,控制台中出现错误:“无法从未定义的 request.payload 解构用户名”,实际上 request.payload 的 console.log 是未定义的:C 我真的需要帮助。

您的问题源于您的端点 HTTP 方法。 HTTP GET 请求不能有负载。您应该将其作为 POST 请求发送。

在 axios 上:


axios.post(config.url, { username: parametros.username, password: parametros.password }).then(...)

在 hapi 端,您应该在路由定义中设置 method: 'POST'。那 您现在应该可以访问 request.payload 属性。您还应该验证从客户端收到的有效负载。这里有一些关于它的文档:https://hapi.dev/tutorials/validation/?lang=en_US.

此外,如果您想将 cookie 添加到服务器的响应中,您应该使用 Response Toolkit(处理程序中的第二个参数 h)进行设置:


return h.response(someValue).state('auth-cookie', { NOM_USUARIO: account.NOM_USUARIO })

这里有一些文档可以帮助您解决问题: https://hapi.dev/api/?v=20.1.0#-hstatename-value-options

祝你好运和 hapi 编码。