UNPKG

@kwiz/common

Version:

KWIZ common utilities and helpers for M365 platform

32 lines (26 loc) 1.15 kB
import {ConfidentialClientApplication, Configuration} from "@azure/msal-node"; import assert from "assert"; assert(process.env.tenantName, "tenantName must be set in .env"); assert(process.env.tenantId, "tenantId must be set in .env"); assert(process.env.clientId, "clientId must be set in .env"); assert(process.env.clientCertificateThumbprint, "clientCertificateThumbprint must be set in .env"); assert(process.env.clientKey, "clientKey must be set in .env"); const config: Configuration = { auth: { clientId: process.env.clientId, authority: `https://login.microsoftonline.com/${process.env.tenantId}`, clientCertificate: { thumbprintSha256: process.env.clientCertificateThumbprint, privateKey: process.env.clientKey } }, }; const clientCredentialRequest = { scopes: [`https://${process.env.tenantName}.sharepoint.com/.default`] }; const cca = new ConfidentialClientApplication(config); export async function getToken() { const auth = await cca.acquireTokenByClientCredential(clientCredentialRequest) assert(auth, "must acquire token"); return auth.accessToken; }