#!/usr/bin/env node import { loginInteractive } from "../src/azure.js"; import { config } from "../public-config.js"; import { createHash } from "crypto"; import { Client } from "@microsoft/microsoft-graph-client"; // const scopes = ["https://management.azure.com/.default"]; const scopes = ["https://graph.microsoft.com/.default"]; let token; try { token = await loginInteractive({ tenantId: config.tenantId, clientId: config.clientId, scopes, }); } catch (e) { console.error("Login failed:", e); console.error(e.stack); process.exit(1); } console.log("Access token acquired."); // Print SHA-256 hash of the access token for verification purposes const hash = createHash("sha256").update(token.accessToken).digest("hex"); console.log("SHA-256 hash of access token:", hash); console.log("Token expires on:", token.expiresOn); const client = Client.init({ authProvider: (done) => { done(null, token.accessToken); }, }); let result; result = await client .api("/applications") .filter("displayName eq 'Azure Node Playground Public'") .get(); const apps = result.value ?? []; console.log( `Registered applications with the name 'Azure Node Playground' (${apps.length}):`, ); if (apps.length !== 1) { console.error( "Expected exactly one application with the name 'Azure Node Playground'. Please ensure it is registered in your Azure AD tenant.", ); process.exit(1); } console.log("Application details:", apps[0]);