JSFiddle - React, Tailwind, and code Playground
by bobbyrne01
JavaScript
/*
* Utility class for any JavaScript functionality needed by 'Address Book' portlet
*/
var AJAX_Utils_AddressBook = {
contacts: null, // object to store list of Contacts returned by Commerce
/*
* On page load, determine ..
* - if session cookie not present but ltpa token available .. request Commerce auth tokens
* - if session cookie not present and ltpa token not available .. show login div
* - else, session cookie present. Verify active user matches stored user in cookie, if not, remove and reload page.
*/
checkLoggedIn: function () {
// login if no user data found in cookie
if ((AJAX_Utils_Common.getCookie('commerceUserData') === "" || AJAX_Utils_Common.getCookie('commerceUserData') === undefined) && AJAX_Utils_Common.getCookie("LtpaToken2") !== undefined) {
var http = new XMLHttpRequest();
var body = '{"LTPAToken" : "' + AJAX_Utils_Common.getCookie("LtpaToken2") + '"}';
var url = '[Component id="b46fc6b6-0b7c-4b24-81d8-43b99330cce6:NC93ZWJzcGhlcmUgY29tbWVyY2UvZGF0YXNvdXJjZXMvd2MuZGF0YWhhbmRsZXIubHRwYWxvZ2lu" name="websphere commerce/datasources/wc.datahandler.ltpalogin"]';
http.open("POST", url, false);
http.setRequestHeader("Content-Type", 'application/json');
http.onreadystatechange = function () {
if (http.readyState === 4 && http.status === 200) {
// store retrieved auth tokens in session cookie
var authCookie = JSON.parse(http.responseText);
authCookie.portalUser = '[Plugin:EvaluateEL value="${wp.user}"]';
var cookieTemp = 'commerceUserData=' + JSON.stringify(authCookie) + '; path=/';
document.cookie = cookieTemp;
// update UI
document.getElementById('[Plugin:Portlet key="namespace" compute="once"]addressBookLoggedIn').style.display = 'inline';
...