Pio*_*sek 6 javascript ssl https server nuxt.js
我在使用 HTTP S时遇到了 nuxt 服务器端 API 调用的问题。在客户端,一切都很好,当我通过链接在客户端切换页面时,API 可以工作,但是当我按 Ctrl + f5 并且数据将在服务器端预取时,实际上没有 API 调用并且没有提供数据。即使没有错误被抛出,但一切都可以与普通的 HTTP 一起正常工作。
在我的生产服务器 nodejs 版本 - v10.9.0 和 HTTPS im 使用通过我的 nodejs 网络托管提供商提供的 SNI SSL
这个问题类似于:https : //github.com/nuxt/nuxt.js/issues/2934 除了那里提供的解决方案对我不起作用。
编辑:
这是在 axios 进入 nuxtServerInit 后我在 store.js 中出现的错误: “无法验证第一个证书”
编辑 2:
之后我发现:https : //forum.vuejs.org/t/nuxtserverinit-with-axios-unable-to-verify-the-first-certificate/31010
我应用了扩展 axios 的插件:
插件/axios.js:
import https from 'https';
export default function ({ $axios }) {
$axios.defaults.httpsAgent = new https.Agent({ rejectUnauthorized: false });
}
Run Code Online (Sandbox Code Playgroud)
nuxt.config.js:
plugins: [
'@/plugins/axios',
]
Run Code Online (Sandbox Code Playgroud)
它现在可以在服务器端和客户端一样好用。但我还有一个问题。这个解决方案安全吗?
我发现此解决方案更易于管理:
export NODE_TLS_REJECT_UNAUTHORIZED=0 && yarn dev --env.NODE_TLS_REJECT_UNAUTHORIZED=0
Run Code Online (Sandbox Code Playgroud)
它还确保它只在开发过程中运行,自签名证书的问题最有可能发生。
你也可以像这样将它添加到你的 package.json 中:
"scripts": {
"dev": "export NODE_TLS_REJECT_UNAUTHORIZED=0 && nuxt --env.NODE_TLS_REJECT_UNAUTHORIZED=0",
Run Code Online (Sandbox Code Playgroud)
你也可以创建一个plugins/axios.js文件
export NODE_TLS_REJECT_UNAUTHORIZED=0 && yarn dev --env.NODE_TLS_REJECT_UNAUTHORIZED=0
Run Code Online (Sandbox Code Playgroud)
确保将插件添加到您的nuxt.config.js文件中