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)
您现在可以使用https://github.com/elidoran/cosmos-browserify对此进行归档.之前我使用过包装,更新它们并创建新包装真的很痛苦.现在有了browserify支持,我可以使用几行代码包含库.看看他们的例子如何做到这一点.我不在这里发布它,因为它可能是变化的主题.
不可能在客户端使用 Npm 模块,因为 Npm 模块是通过仅在服务器端运行的 Node.js 进行的扩展。
如果你想使用像 crypto 这样的文件,你必须制作一个仅限客户端的版本并将其放入/client/lib
你的 Meteor 应用程序中
虽然这在官方上是可能的,但 Meteor 并不支持这一点。
您必须使用此项目手动包含 requirejs:https ://github.com/apendua/require