验证 node.js 文件使用的最佳方式?
Best way to authenticate node.js file use?
我有一个 node.js 文件,当 运行 首先通过从 JSON 文件读取两个字符串来验证用户。
但是,这种方法的一个主要问题是:
JSON 文件
{
"id": "12345",
"apiKey": "foo"
}
JS 文件
if (jsonFile.id === "123" && jsonFile.apiKey === "foo") {
return true;
} else {
return false;
}
是用户可以将 JS 文件中的值更改为他们想要放入 JSON 文件中的任何值,以便他们可以验证任何内容。
一个解决方案,我认为是使用带有加密的散列,但用户可以为他们想要的任何 id 或 apiKey 创建一个散列,并在文件中更改它。代码将被混淆,但我想我会问是否有更好的方法。
我不希望我提供给用户的程序能够 运行 不同的 apiKey 或 id,只有我在程序中定义的那些,他们不应该能够更改它。
提前致谢。
假设您的 node.js 文件在您的服务器上 运行 并且您正在验证来自客户端的请求,那么您应该查看 passport.js 或其他验证库。凭据不应以明文形式传递给服务器,但即使您的客户端更改了凭据,也不意味着它们将在服务器上获得身份验证,因为服务器使用注册用户的数据库进行身份验证。您的示例表明您正在寻找 "bearer token" 身份验证 (apiKey),因此这是 passportjs.org 网站上 passport-http-bearer 文档的 link。
我有一个 node.js 文件,当 运行 首先通过从 JSON 文件读取两个字符串来验证用户。
但是,这种方法的一个主要问题是:
JSON 文件
{
"id": "12345",
"apiKey": "foo"
}
JS 文件
if (jsonFile.id === "123" && jsonFile.apiKey === "foo") {
return true;
} else {
return false;
}
是用户可以将 JS 文件中的值更改为他们想要放入 JSON 文件中的任何值,以便他们可以验证任何内容。
一个解决方案,我认为是使用带有加密的散列,但用户可以为他们想要的任何 id 或 apiKey 创建一个散列,并在文件中更改它。代码将被混淆,但我想我会问是否有更好的方法。
我不希望我提供给用户的程序能够 运行 不同的 apiKey 或 id,只有我在程序中定义的那些,他们不应该能够更改它。
提前致谢。
假设您的 node.js 文件在您的服务器上 运行 并且您正在验证来自客户端的请求,那么您应该查看 passport.js 或其他验证库。凭据不应以明文形式传递给服务器,但即使您的客户端更改了凭据,也不意味着它们将在服务器上获得身份验证,因为服务器使用注册用户的数据库进行身份验证。您的示例表明您正在寻找 "bearer token" 身份验证 (apiKey),因此这是 passportjs.org 网站上 passport-http-bearer 文档的 link。