diff --git a/oauth3.implicit.js b/oauth3.implicit.js index 4c27c4d..f1be21f 100644 --- a/oauth3.implicit.js +++ b/oauth3.implicit.js @@ -16,6 +16,8 @@ } , _base64: { atob: function (base64) { + // atob must be called from the global context + // http://stackoverflow.com/questions/9677985/uncaught-typeerror-illegal-invocation-in-chrome return (exports.atob || require('atob'))(base64); } , decodeUrlSafe: function (b64) { diff --git a/oauth3.issuer.mock.js b/oauth3.issuer.mock.js index 24693de..b618ba0 100644 --- a/oauth3.issuer.mock.js +++ b/oauth3.issuer.mock.js @@ -3,7 +3,10 @@ var OAUTH3 = exports.OAUTH3 = exports.OAUTH3 || require('./oauth3.implicit.js').OAUTH3; - OAUTH3._base64.btoa = exports.btoa || require('btoa'); + OAUTH3._base64.btoa = function (b64) { + // http://stackoverflow.com/questions/9677985/uncaught-typeerror-illegal-invocation-in-chrome + (exports.btoa || require('btoa'))(b64); + } OAUTH3._base64.encodeUrlSafe = function (b64) { // Base64 to URL-safe Base64 b64 = b64.replace(/\+/g, '-').replace(/\//g, '_');