Для выполнения этих задач вам понадобится криптомодуль 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. Вот пример кода того, как я кодирую политику безопасности JSON в base64, а затем использую ее для создания подписи безопасности в своем собственном приложении:
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");
}
Это позволит вам вызывать MyPackage.myFunction на стороне сервера вашего приложения Meteor. И последнее, но не последнее: не забудьте «метеор добавить мой пакет», чтобы использовать его!
27.08.2013