diff --git a/src/emulator/auth/widget_ui.ts b/src/emulator/auth/widget_ui.ts index 34cfea3f336..535eb044db2 100644 --- a/src/emulator/auth/widget_ui.ts +++ b/src/emulator/auth/widget_ui.ts @@ -158,16 +158,17 @@ var reuseAccountEls = document.querySelectorAll('.js-reuse-account'); if (reuseAccountEls.length) { [].forEach.call(reuseAccountEls, function (el) { var urlEncodedIdToken = el.dataset.idToken; + const decoded = JSON.parse(decodeURIComponent(urlEncodedIdToken)); el.addEventListener('click', function (e) { e.preventDefault(); - finishWithUser(urlEncodedIdToken); + finishWithUser(urlEncodedIdToken, decoded.email); }); }); } else { document.querySelector('.js-accounts-help-text').textContent = "No " + formattedProviderId + " accounts exist in the Auth Emulator."; } -function finishWithUser(urlEncodedIdToken) { +function finishWithUser(urlEncodedIdToken, email) { // Use widget URL, but replace all query parameters (no apiKey etc.). var url = window.location.href.split('?')[0]; // Avoid URLSearchParams for browser compatibility. @@ -176,7 +177,6 @@ function finishWithUser(urlEncodedIdToken) { // Save reasonable defaults for SAML providers if (isSamlProvider) { - var email = document.getElementById('email-input').value || document.getElementById('reuse-email').innerText; url += '&SAMLResponse=' + encodeURIComponent(JSON.stringify({ assertion: { subject: { @@ -234,7 +234,7 @@ document.getElementById('main-form').addEventListener('submit', function(e) { if (screenName) claims.screenName = screenName; if (photoUrl) claims.photoUrl = photoUrl; - finishWithUser(createFakeClaims(claims)); + finishWithUser(createFakeClaims(claims), email); } });