in src/http/extractHttpUserFromHeaders.ts [11:38]
export function extractHttpUserFromHeaders(headers: Headers): HttpRequestUser | null {
let user: HttpRequestUser | null = null;
const clientPrincipal = headers.get('x-ms-client-principal');
if (clientPrincipal) {
const claimsPrincipalData = JSON.parse(Buffer.from(clientPrincipal, 'base64').toString('utf-8'));
if (claimsPrincipalData['identityProvider']) {
user = {
type: 'StaticWebApps',
id: claimsPrincipalData['userId'],
username: claimsPrincipalData['userDetails'],
identityProvider: claimsPrincipalData['identityProvider'],
claimsPrincipalData,
};
} else {
user = {
type: 'AppService',
id: nonNullValue(headers.get('x-ms-client-principal-id'), 'user-id'),
username: nonNullValue(headers.get('x-ms-client-principal-name'), 'user-name'),
identityProvider: nonNullValue(headers.get('x-ms-client-principal-idp'), 'user-idp'),
claimsPrincipalData,
};
}
}
return user;
}