Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Werknemersgebruikers
Externe gebruikers (meer informatie)
In deze zelfstudie leert u hoe u de CORS-proxyserver instelt om CORS-headers te beheren terwijl u communiceert met de systeemeigen verificatie-API van een React-app met één pagina (SPA). De CORS-proxyserver is een oplossing voor het onvermogen van de systeemeigen verificatie-API om CORS-(Cross-Origin Resource Sharing) te ondersteunen.
In deze handleiding leert u:
- Cors-proxyserver maken.
- Stel de CORS-proxyserver in om de systeemeigen verificatie-API aan te roepen.
- Voer uw React-app uit en test deze.
Voorwaarden
- Voltooi de stappen in Zelfstudie: Een React-app met één pagina maken om gebruikers aan te melden bij een externe tenant met behulp van de systeemeigen verificatie-API.
De CORS-proxyserver maken
Maak in de hoofdmap van uw React-app een bestand met de naam cors.jsen voeg vervolgens de volgende code toe:
const http = require("http"); const https = require("https"); const url = require("url"); const proxyConfig = require("./proxy.config.js"); http .createServer((req, res) => { const reqUrl = url.parse(req.url); const domain = url.parse(proxyConfig.proxy).hostname; if (reqUrl.pathname.startsWith(proxyConfig.localApiPath)) { const targetUrl = proxyConfig.proxy + reqUrl.pathname?.replace(proxyConfig.localApiPath, "") + (reqUrl.search || ""); console.log("Incoming request -> " + req.url + " ===> " + reqUrl.pathname); const proxyReq = https.request( targetUrl, { method: req.method, headers: { ...req.headers, host: domain, }, }, (proxyRes) => { res.writeHead(proxyRes.statusCode, { ...proxyRes.headers, "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", "Access-Control-Allow-Headers": "Content-Type, Authorization", }); proxyRes.pipe(res); } ); proxyReq.on("error", (err) => { console.error("Error with the proxy request:", err); res.writeHead(500, { "Content-Type": "text/plain" }); res.end("Proxy error."); }); req.pipe(proxyReq); } else { res.writeHead(404, { "Content-Type": "text/plain" }); res.end("Not Found"); } }) .listen(proxyConfig.port, () => { console.log("CORS proxy running on http://localhost:3001"); console.log("Proxying from " + proxyConfig.localApiPath + " ===> " + proxyConfig.proxy); });Maak in de hoofdmap van uw React-app een bestand met de naam proxy.config.jsen voeg vervolgens de volgende code toe:
const tenantSubdomain = "Enter_the_Tenant_Subdomain_Here"; const tenantId = "Enter_the_Tenant_Id_Here"; const config = { localApiPath: "/api", port: 3001, proxy: `https://${tenantSubdomain}.ciamlogin.com/${tenantId}`, }; module.exports = config;Zoek de tijdelijke aanduiding
Enter_the_Tenant_Subdomain_Hereen vervang deze door het subdomein Directory (tenant). Als uw primaire tenantdomein bijvoorbeeld iscontoso.onmicrosoft.com, gebruikt ucontoso. Als u uw tenant-subdomein niet hebt, leert u hoe u uw tenant-gegevens kunt lezen.tenantIden vervang deze door de directory-id (tenant). Als u uw tenant-id niet hebt, leert u hoe u uw tenantgegevens kunt lezen.
Open package.json bestand en voeg vervolgens de volgende opdracht toe in het scripts-object:
"cors": "node cors.js",
Op dit moment zijn de React-app en de CORS-proxyserver gereed om te worden uitgevoerd.
Uw app uitvoeren en testen
Open een terminalvenster en navigeer naar de hoofdmap van uw app:
cd reactspaVoer de volgende opdracht uit in de terminal om de CORS-proxyserver te starten:
npm run corsAls u de React-app wilt starten, opent u een ander terminalvenster en voert u vervolgens de volgende opdracht uit:
cd reactspa npm startOpen een webbrowser en navigeer naar
http://localhost:3000/. Er wordt een registratieformulier weergegeven.Als u zich wilt registreren voor een account, voert u uw gegevens in, selecteert u de knop Registreren en volgt u de aanwijzingen.
Op dit moment hebt u een React-app gemaakt waarmee u een gebruiker kunt registreren met behulp van de systeemeigen verificatie-API. Vervolgens kunt u de React-app bijwerken om u aan te melden bij een gebruiker of het wachtwoord van de gebruiker opnieuw in te stellen.
Aanvullende informatie over CORS-proxyserver
In deze zelfstudie stelt u een lokale CORS-server in. U kunt echter een omgekeerde proxyserver instellen voor het beheren van CORS-headers met behulp van azure-functie-app, zoals uitgelegd in een testomgeving.
In een productieomgeving kunt u de stappen in gebruiken om een omgekeerde proxy in te stellen voor een single-page app die gebruikmaakt van de systeemeigen verificatie-API, met behulp van Azure Function App, om uw CORS-proxyserver in te stellen.