完全难倒。我有一个导入帮助文件的React App。该助手文件现在只包含以下内容(并且文件正确加载):
var accountSid = '<secret_id>';
var authToken = '<secret_token>';
var client = require('twilio')(accountSid, authToken);
我收到此错误:&#34;参考错误:分配给未声明的变量_crypto&#34;
源地图将我带到了&#39; bundle.js中的这段代码,&#39;由Webpack编译:
/* 262 */
/***/ function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global, Buffer) {'use strict';
(function () {
var g = ('undefined' === typeof window ? global : window) || {};
_crypto = g.crypto || g.msCrypto || __webpack_require__(263);
module.exports = function (size) {
// Modern Browsers
if (_crypto.getRandomValues) {
var bytes = new Buffer(size); //in browserify, this is an extended Uint8Array
/* This will not work in older browsers.
* See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
*/
_crypto.getRandomValues(bytes);
return bytes;
} else if (_crypto.randomBytes) {
return _crypto.randomBytes(size);
} else throw new Error('secure random number generation not supported by this browser\n' + 'use chrome, FireFox or Internet Explorer 11');
};
})();
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(257).Buffer))
/***/ },
该功能来自名为&#39; rng.js&#39;的文件。内部&#39;(webpack)&gt; 〜/ node-libs-browser /〜&gt;加密browserify&#39; 当我注释掉twilio实例化方法时,错误消失了。在我开始使用twilio模块之前,它并没有显示出来。
之前有人见过这个或者有关于我如何修复它的建议?日Thnx。
答案 0 :(得分:1)
Twilio开发者传道者在这里。
您似乎正在尝试在浏览器中使用Twilio Node module。这不受支持,也非常不推荐。原因之一是:
如果您在前端列出了您的帐户凭据,那么任何恶意用户都可以窃取和使用您的Twilio帐户,将所有资金都花在他们想要打电话或短信的人身上。
我们建议您在服务器上对Twilio进行API调用,并在需要创建动态前端时通过Ajax发送请求。