Browserify Crypto如何独立注入angular离子

我新离子和angular的蜜蜂。 我用Browserify来为我的Ionic项目要求nodejs的Crypto模块。 以下是我的步骤:

  1. 我添加了新行到app.js文件

angular.module(…..)。恒定( 'encryption',要求( '密码'))

  1. 我运行命令行,它使用Crypto模块和app.js文件的代码完美地创build新文件

browserify app.js> bundle.js

  1. 我在index.html文件中用bundle.jsreplaceapp.js

  2. 我尝试在service.js中进行testing

angular.module( 'mapp.services')。工厂( 'ABC',[ '$ HTTP', 'encryption',函数($ HTTP,encryption){
返回{
getAllProduct:function(){console.log(Crypto.SHA256(“Message”)); });
}}]);

它返回消息“Crypto.SHA256不是一个function”。 我认为“常量”是指一个值,而不是一个静态的对象,所以我不能将Crypto传递给“常量”。 那么,我怎样才能通过Browserify在app.js文件中需要所有需要的模块,然后在其他js文件(如$ http)中使用它呢? 谢谢!

对不起,因为我的愚蠢的问题。 我们可以将Crypto对象分配给常量池。 问题是我的代码。 要encryption一个string,代码必须是

crypto.createHash( 'SHA256')更新(myStr中).digest( 'BASE64');

代替

crypto.sha256(myStr中)

现在问题解决了,但谢谢你的回复和评论。

我不认为Crypto会在客户端上工作,它是用于执行encryption的服务器端库,在很大程度上是OpenSSL的封装( 见这里 )。

它包装的function不能在Ionic / Angular中调用,原因很简单,它们在客户端上不可用。

尝试使用CryptoJS,而不是像这个答案中提出的那样 – 它被devise成在你的Ionic / Angular项目中用于客户端来执行与cryto相关的操作。

Interesting Posts