@m10s/cmp
Version:
Package containing scripts used by Schibsteds' sites to integrate with Sourcepoint CMP
25 lines (18 loc) • 871 B
JavaScript
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 });
}
};