node.js - 不支持的证书用途 - NextAuth - 本地主机中的 SSL - 节点服务器
问题描述
我按照本教程设置https
本地开发机器:https ://dev.to/nakib/using-https-on-next-js-local-development-server-bcd
这是我使用的代码:
const { createServer } = require("https");
const { parse } = require("url");
const next = require("next");
const fs = require("fs");
const port = 3000;
const dev = process.env.NODE_ENV !== "production";
const app = next({ dev });
const handle = app.getRequestHandler();
const httpsOptions = {
key: fs.readFileSync('/some/path/to/rootCA-key.pem'),
cert: fs.readFileSync('/some/path/to/rootCA.pem')
};
app.prepare().then(() => {
createServer(httpsOptions, (req, res) => {
const parsedUrl = parse(req.url, true);
handle(req, res, parsedUrl);
}).listen(port, (err) => {
if (err) throw err;
console.log("ready - started server on url: https://localhost:" + port);
});
});
并且正在使用 NextAuth 进行身份验证。如果我尝试访问我的应用程序中的任何正常页面,一切正常(甚至是身份验证)。但是,如果我访问应用程序的 API 端点,并尝试使用 检索session
数据const session = await getSession({ req })
,则会引发以下错误:
[next-auth][error][CLIENT_FETCH_ERROR]
https://next-auth.js.org/errors#client_fetch_error request to https://localhost:3000/api/auth/session failed, reason: unsupported certificate purpose {
error: {
message: 'request to https://localhost:3000/api/auth/session failed, reason: unsupported certificate purpose',
我相信这是因为我设置了 SSL 证书。我检查了错误消息中提到的链接,并且NEXTAUTH_URL
在 env 文件中是正确的。有没有办法绕过这个问题?
解决方案
推荐阅读
- firebase - 在 Cloud Functions 中结合 Firebase 数据触发器 .create .update(可能还有 .remove)
- agens-graph - 如何在 AgensGraph 上记录 ddl 命令?
- go - 由于使用的帐户已删除,请手动更改 GCloud API 存储上的凭据
- html - 我怎样才能绝对图像而不重叠到另一个图像?
- json - 200 OK 或 201 Created : 两步休息服务
- javascript - 我在 Html2Canvas 库中有一个错误 - Vue
- java - Java使用https连接elasticsearch集群
- tensorflow - 使用toco将pb转换为tflite时,toco成功了,但是没有结果
- angular - 在 ts 代码中添加到元素时,为什么不使用角度材料工具提示?
- sql - amazon-redshift : 选择 id, first(a),sum(b) group by id