流星Npm模块客户端?

Pet*_*r W 15 client npm meteor

是否可以在客户端使用Npm-Modules?

进一步来说:

我想使用node.js内置的加密模块来加密用户输入的密码,然后将带有签名(/ hmac)的加密密码发送到我的服务器.

我需要这样做,因为我必须能够检索服务器端的原始密码,因为之后我将把它发送到ldap-server,因为用户应该使用相同的用户名/密码进行身份验证.在该服务器上注册.

这就是我做的:

在packages/crypto /: - package.js中创建:

Package.on_use(function(api) { api.add_files('crypto.js',['server','client']);});

-crypto.js: crypto = Npm.require("crypto");

它在服务器上工作正常,但在客户端上显示"参考错误:未定义Npm".那么,是否可以在客户端使用加密模块?

有没有其他方法来实现这一目标?

谢谢!

编辑:有没有什么好的方法可以安全地获取服务器的密码,以便服务器可以检索原始密码?我认为在客户端做ldap() - 请求(比如: if(checkLdap(usrname,password)){<login>} else{fail})可以轻松绕过?

th0*_*h0r 14

您可以尝试.npm在crypto的包目录下的文件夹中添加客户端所需的js文件.所以,你的package.js文件可能如下所示:

Package.describe({
  summary: 'Description of your crypto package'
});

Npm.depends({
  'crypto': '1.0.0'
});

Package.on_use(function (api) {
  api.add_files('crypto.js', 'server');
  api.add_files('.npm/node_modules/crypto/crypto.js', 'client');
});
Run Code Online (Sandbox Code Playgroud)


Igo*_*tov 5

您现在可以使用https://github.com/elidoran/cosmos-browserify对此进行归档.之前我使用过包装,更新它们并创建新包装真的很痛苦.现在有了browserify支持,我可以使用几行代码包含库.看看他们的例子如何做到这一点.我不在这里发布它,因为它可能是变化的主题.


Aks*_*hat 2

不可能在客户端使用 Npm 模块,因为 Npm 模块是通过仅在服务器端运行的 Node.js 进行的扩展。

如果你想使用像 crypto 这样的文件,你必须制作一个仅限客户端的版本并将其放入/client/lib你的 Meteor 应用程序中

虽然这在官方上是可能的,但 Meteor 并不支持这一点。

您必须使用此项目手动包含 requirejs:https ://github.com/apendua/require

  • 许多 npm 模块被设计为可在服务器或客户端上使用,而不仅仅是服务器。 (2认同)