Oktatóanyag: React egyoldalas alkalmazás létrehozása és hitelesítésre való előkészítése
A regisztráció befejezése után a React-projekt egy integrált fejlesztési környezettel (IDE) hozható létre. Ez az oktatóanyag bemutatja, hogyan hozhat létre egy egyoldalas React-alkalmazást a hitelesítéshez és engedélyezéshez szükséges fájlok használatával npm
és létrehozásával.
Ebben az oktatóanyagban:
- Új React-projekt létrehozása
- Az alkalmazás beállításainak konfigurálása
- Identitás- és rendszerindítási csomagok telepítése
- Hitelesítési kód hozzáadása az alkalmazáshoz
Előfeltételek
- Az oktatóanyag előfeltételeinek és lépéseinek elvégzése: Alkalmazás regisztrálása.
- Bár a React-alkalmazásokat támogató ide-k használhatók, az oktatóanyaghoz az alábbi Visual Studio-azonosítókat használjuk. Ezek a Letöltések oldalról tölthetők le. MacOS-felhasználók számára a Visual Studio Code használata ajánlott.
- Visual Studio 2022
- Visual Studio Code
- Node.js.
Új React-projekt létrehozása
Az alábbi fülek használatával hozzon létre egy React-projektet az IDE-ben.
Nyissa meg a Visual Studiót, majd válassza az Új projekt létrehozása lehetőséget.
Keresse meg és válassza ki az önálló JavaScript React Project-sablont, majd kattintson a Tovább gombra.
Adja meg a projekt nevét, például reactspalocal.
Válasszon egy helyet a projekthez, vagy fogadja el az alapértelmezett beállítást, majd válassza a Tovább gombot.
A További információ területen válassza a Létrehozás lehetőséget.
Az eszköztáron válassza a Hibakeresés nélküli indítás lehetőséget az alkalmazás elindításához. Alapértelmezés szerint megnyílik egy webböngésző a címmel
http://localhost:3000/
. A böngésző nyitva marad, és minden mentett módosításhoz újra renderel.Hozzon létre további mappákat és fájlokat a következő mappastruktúra eléréséhez:
├─── public │ └─── index.html └───src ├─── components │ └─── PageLayout.jsx │ └─── ProfileData.jsx │ └─── SignInButton.jsx │ └─── SignOutButton.jsx └── App.css └── App.jsx └── authConfig.js └── graph.js └── index.css └── index.js
Identitás- és rendszerindítási csomagok telepítése
A felhasználói hitelesítés engedélyezéséhez telepíteni kell az identitással kapcsolatos npm-csomagokat a projektben. A projekt stílusához a Rendszerindítót fogja használni.
- A Megoldáskezelő kattintson a jobb gombbal az npm beállításra, és válassza az Új npm-csomagok telepítése lehetőséget.
- Keresse meg a @azure/MSAL-böngészőt, majd válassza a Csomag telepítése lehetőséget. Ismételje meg a @azure/MSAL-reaktív műveletet.
- Keresse meg és telepítse a react-bootstrap parancsot.
- Válassza a Bezárás lehetőséget.
Ha többet szeretne megtudni ezekről a csomagokról, tekintse meg a dokumentációt és msal-browser
msal-react
a .
A hitelesítési konfigurációs fájl létrehozása
Az src mappában nyissa meg a authConfig.js, és adja hozzá a következő kódrészletet:
/* * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ import { LogLevel } from "@azure/msal-browser"; /** * Configuration object to be passed to MSAL instance on creation. * For a full list of MSAL.js configuration parameters, visit: * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/configuration.md */ export const msalConfig = { auth: { clientId: "Enter_the_Application_Id_Here", authority: "https://login.microsoftonline.com/Enter_the_Tenant_Info_Here", redirectUri: "http://localhost:3000", }, cache: { cacheLocation: "sessionStorage", // This configures where your cache will be stored storeAuthStateInCookie: false, // Set this to "true" if you are having issues on IE11 or Edge }, system: { loggerOptions: { loggerCallback: (level, message, containsPii) => { if (containsPii) { return; } switch (level) { case LogLevel.Error: console.error(message); return; case LogLevel.Info: console.info(message); return; case LogLevel.Verbose: console.debug(message); return; case LogLevel.Warning: console.warn(message); return; default: return; } } } } }; /** * Scopes you add here will be prompted for user consent during sign-in. * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request. * For more information about OIDC scopes, visit: * https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#openid-connect-scopes */ export const loginRequest = { scopes: ["User.Read"] }; /** * Add here the scopes to request when obtaining an access token for MS Graph API. For more information, see: * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/resources-and-scopes.md */ export const graphConfig = { graphMeEndpoint: "https://graph.microsoft.com/v1.0/me", };
Cserélje le a következő értékeket a Microsoft Entra Felügyeleti központ értékeire.
clientId
- Az alkalmazás azonosítója, más néven az ügyfél. Cserélje leEnter_the_Application_Id_Here
az alkalmazás (ügyfél) azonosítójának értékét, amelyet korábban a regisztrált alkalmazás áttekintő oldaláról rögzítettek.authority
- Ez két részből áll:- A példány a felhőszolgáltató végpontja. Ellenőrizze a különböző elérhető végpontokat a nemzeti felhőkben.
- A bérlőazonosító annak a bérlőnek az azonosítója, amelyben az alkalmazás regisztrálva van. Cserélje le a Enter_the_Tenant_Info_Here a címtár (bérlő) azonosítójának a regisztrált alkalmazás áttekintési oldaláról korábban rögzített értékére.
Mentse a fájlt.
A index.js módosítása a hitelesítésszolgáltató belefoglalásához
Az alkalmazás minden olyan részét, amely hitelesítést igényel, az MsalProvider
összetevőbe kell burkolni. Példányosít egy PublicClientApplication példányt , majd átadja a következőnek MsalProvider
: .
Az src mappában nyissa meg a index.js, és cserélje le a fájl tartalmát a következő kódrészletre a csomagok és a
msal
bootstrap-stílus használatához:import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import { PublicClientApplication } from '@azure/msal-browser'; import { MsalProvider } from '@azure/msal-react'; import { msalConfig } from './authConfig'; // Bootstrap components import 'bootstrap/dist/css/bootstrap.min.css'; const msalInstance = new PublicClientApplication(msalConfig); const root = ReactDOM.createRoot(document.getElementById('root')); /** * We recommend wrapping most or all of your components in the MsalProvider component. It's best to render the MsalProvider as close to the root as possible. */ root.render( <React.StrictMode> <MsalProvider instance={msalInstance}> <App /> </MsalProvider> </React.StrictMode> );
Mentse a fájlt.