From 919b7a21e90d54d4137c8854eee97c5821d474db Mon Sep 17 00:00:00 2001 From: Eric Alter Date: Mon, 3 Apr 2017 15:06:51 -0400 Subject: [PATCH] Fix issue with question mark param in callback url --- oauth-service.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/oauth-service.js b/oauth-service.js index a84fa22..dca069a 100644 --- a/oauth-service.js +++ b/oauth-service.js @@ -84,6 +84,9 @@ var OAuthService = (function () { var _this = this; options = options || {}; var parts = this.getFragment(); + if(parts === false){ + return false; + } var accessToken = parts["access_token"]; var idToken = parts["id_token"]; var state = parts["state"]; @@ -280,7 +283,14 @@ var OAuthService = (function () { ; OAuthService.prototype.getFragment = function () { if (window.location.hash.indexOf("#") === 0) { - return this.parseQueryString(window.location.hash.substr(1)); + if(this.redirectUri.indexOf('#')) { + var returnUrlHashPart = this.redirectUri.split('#'); + var currentHashPart = window.location.hash.substr(1); + if(currentHashPart.indexOf(returnUrlHashPart[1]) === 0) { + return this.parseQueryString(window.location.hash.substr(1)); + } + } + return false; } else { return {}; @@ -293,6 +303,10 @@ var OAuthService = (function () { return data; } pairs = queryString.split("&"); + if(pairs.length && pairs[0].indexOf("?")){ + var firstPart = pairs[0].split("?"); + pairs[0] = firstPart[1]; + } for (var i = 0; i < pairs.length; i++) { pair = pairs[i]; separatorIndex = pair.indexOf("=");