您需要 NodeJS 加密模块来执行这些任务。
首先在你的流星项目的根目录下创建一个“packages”目录,然后创建一个“my-package”目录。在其中,您需要两个文件:“package.js”和“my-package.js”。
package.js 应该看起来像:
Package.describe({
summary:"MyPackage doing amazing stuff with AWS."
});
Package.on_use(function(api){
// add your package file to the server app
api.add_files("my-package.js","server");
// what we export outside of the package
// (this is important : packages have their own scope !)
api.export("MyPackage","server");
});
my-package.js 应该看起来像:
var crypto=Npm.require("crypto");
MyPackage={
myFunction:function(arguments){
// here you can use crypto functions !
}
};
您可能需要的功能是crypto.createHmac。这是我如何在 base64 中编码 JSON 安全策略然后使用它在我自己的应用程序中生成安全签名的示例代码:
encodePolicy:function(jsonPolicy){
// stringify the policy, store it in a NodeJS Buffer object
var buffer=new Buffer(JSON.stringify(jsonPolicy));
// convert it to base64
var policy=buffer.toString("base64");
// replace "/" and "+" so that it is URL-safe.
return policy.replace(/\//g,"_").replace(/\+/g,"-");
},
encodeSignature:function(policy){
var hmac=crypto.createHmac("sha256",APP_SECRET);
hmac.update(policy);
return hmac.digest("hex");
}
这将允许您在 Meteor 应用程序的服务器端调用 MyPackage.myFunction。最后但不是最后,不要忘记“流星添加我的包”才能使用它!