He estado siguiendo este tutorial conesta biblioteca, pero los fragmentos de código proporcionados producen errores. Registré la aplicación con Azure y seguí las instrucciones, pero cuando ejecuto el código, dice SyntaxError: await is only valid in async functions and the top level bodies of modules at /script.js:74:20
Aquí hay un fragmento de código relevante, pero si tiene Replit, le agradecería mucho si pudiera colaborar conmigo en mi Repl en su lugar .
Enlace de repetición: https://replit.com/join/rgqcqfcohh-5pengoo
Código:
const msal = require('@azure/msal-node'); // Create msal application object const cca = new msal.ConfidentialClientApplication(config); const REDIRECT_URI = "http://localhost:3000/redirect"; const config = { auth: { clientId: "ebcb2e8c-4675-411f-a76e-25aafe0c026d", authority: "https://login.microsoftonline.com/98ca2106-858a-413a-b7d5-31301dcf9869/", // I wasn't sure if this meant the key value or the secret ID clientSecret: "ee10b5ce-f9c4-460a-a402-064030841f86" }, system: { loggerOptions: { loggerCallback(loglevel, message, containsPii) { console.log(message); }, piiLoggingEnabled: false, logLevel: msal.LogLevel.Verbose, } } }; // 1st leg of auth code flow: acquire a code app.get('/', (req, res) => { const authCodeUrlParameters = { scopes: ["user.read"], redirectUri: REDIRECT_URI, }; // get url to sign user in and consent to scopes needed for application pca.getAuthCodeUrl(authCodeUrlParameters).then((response) => { res.redirect(response); }).catch((error) => console.log(JSON.stringify(error))); }); // 2nd leg of auth code flow: exchange code for token app.get('/redirect', (req, res) => { const tokenRequest = { code: req.query.code, scopes: ["user.read"], redirectUri: REDIRECT_URI, }; pca.acquireTokenByCode(tokenRequest).then((response) => { console.log("\nResponse: \n:", response); res.sendStatus(200); }).catch((error) => { console.log(error); res.status(500).send(error); }); }); try { let userDetails = await client.api("/me").get(); console.log(userDetails); } catch (error) { throw error; }MohammedMehtabSiddiqueMINDTREELIMI-9821 en Microsoft Docs me informó que...
"Puede usar" esperar "solo dentro de una función que es" asíncrona ".
Aquí puede intentar eliminar 'esperar' del código e intentar ejecutarlo"
¡Y funcionó!