javascript - 从单独的 Vue JS 前端使用 Hapi JS API。request.payload 未定义
问题描述
我在 Hapi JS 上迈出了第一步。我的应用程序与 SQL Server 数据库连接。
但是,我正在尝试将登录数据从 Vue CLI JS 前端发送到 Hapi JS Api,为此我使用 axios。登录是一个“SELECT * FROM”查询,所以我把“get”放在了axios函数代码中。
这是有效的功能,但我无法通过 URL 发送密码,这不安全,使用 F12 您可以看到用户凭据是否免费加密。
这是接收数据的 Hapi JS 路由。它是这样工作的,但对我来说这样做不值得。我希望我的代码像这样工作:
axios函数
使用“request.payload”而不是“request.query”的 Hapi JS 路由
但是当我尝试这个时,控制台中有一个错误,上面写着:“无法从未定义的 request.payload 解构用户名”,实际上 request.payload 的 console.log 是未定义的:CI 真的需要帮助。
解决方案
您的问题源于您的端点 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 编码。
推荐阅读
- linux - 防火墙设置导致 523 错误 [Linux]
- python - 在 openpyxl 中,有没有办法在不覆盖现有格式的情况下应用格式?
- c# - 将服务注入 Nhibernare Envers 以自定义修订实体
- rest - 尝试 POST 时连接关闭
- reactjs - 材质 UI 选择不显示选项
- python - 设置没有选择的 ipywidget 选项
- azure - 如何在 Azure DevOps 中创建集成测试?
- flutter - 将 Flutter 列表导出为 CSV 文件
- node.js - 使用来自另一个集合的“内部选择”的数据将文档插入集合
- sql - 计算未结工单的通过服务时间 (Oracle SQL)