From 7a3d5777e02f1b489a3752b7e58e9c6ca03e128b Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Tue, 21 Feb 2017 12:19:47 -0700 Subject: [PATCH] bugfix: must call atob/btoa from window context --- oauth3.implicit.js | 2 ++ oauth3.issuer.mock.js | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) 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, '_');