UNPKG

@m10s/cmp

Version:

Package containing scripts used by Schibsteds' sites to integrate with Sourcepoint CMP

25 lines (18 loc) 871 B
const defaultIdentityObjectName = 'Identity'; export function getIdentityObject(_window, config) { if (_window.psi?.identityObject) return _window.psi.identityObject; if (config?.identityObject) return config.identityObject; const windowIdentity = _window.psi?.identityObjectName || config?.identityObjectName || defaultIdentityObjectName; if (!_window[windowIdentity]) { return console.warn('No Schibsted Account integration detected.'); } return _window[windowIdentity]; }; export function handleLoginFlow(_window) { const char = () => Math.floor((Math.random() * (122 - 97)) + 97); const id = Array.from({length: 20}, () => String.fromCharCode(char())).join(''); const stateBase = btoa(JSON.stringify(id)); if (getIdentityObject(_window)) { getIdentityObject(_window).login({ state: stateBase }); } };