UNPKG

@azure/functions

Version:
35 lines (29 loc) 1.24 kB
// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the MIT License. import { HttpRequestHeaders, HttpRequestUser } from '@azure/functions'; export function extractHttpUserFromHeaders(headers: HttpRequestHeaders): HttpRequestUser | null { let user: HttpRequestUser | null = null; if (headers['x-ms-client-principal']) { const claimsPrincipalData = JSON.parse( Buffer.from(headers['x-ms-client-principal'], '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: headers['x-ms-client-principal-id'], username: headers['x-ms-client-principal-name'], identityProvider: headers['x-ms-client-principal-idp'], claimsPrincipalData, }; } } return user; }