in react/features/base/jwt/middleware.js [125:170]
function _setJWT(store, next, action) {
// eslint-disable-next-line no-unused-vars
const { jwt, type, ...actionPayload } = action;
if (!Object.keys(actionPayload).length) {
if (jwt) {
let jwtPayload;
try {
jwtPayload = jwtDecode(jwt);
} catch (e) {
logger.error(e);
}
if (jwtPayload) {
const { context, iss, sub } = jwtPayload;
action.jwt = jwt;
action.issuer = iss;
if (context) {
const user = _user2participant(context.user || {});
action.callee = context.callee;
action.group = context.group;
action.server = context.server;
action.tenant = context.tenant || sub || undefined;
action.user = user;
user && _overwriteLocalParticipant(
store, { ...user,
features: context.features });
}
}
} else if (typeof APP === 'undefined') {
// The logic of restoring JWT overrides make sense only on mobile.
// On Web it should eventually be restored from storage, but there's
// no such use case yet.
const { user } = store.getState()['features/base/jwt'];
user && _undoOverwriteLocalParticipant(store, user);
}
}
return next(action);
}