Samouczek: dodawanie logowania i wylogowywanie się do aplikacji React SPA dla dzierżawy zewnętrznej
Ten samouczek jest ostatnią częścią serii, która demonstruje tworzenie jednostronicowej aplikacji React (SPA) i przygotowanie jej do uwierzytelniania przy użyciu centrum administracyjnego firmy Microsoft Entra. W części 3 tej serii utworzono aplikację React SPA w programie Visual Studio Code i skonfigurowano ją do uwierzytelniania. W tym ostatnim kroku pokazano, jak dodać funkcje logowania i wylogowania do aplikacji.
W tym samouczku;
- Tworzenie układu strony i dodawanie środowiska logowania i wylogowywanie
- Zastąp funkcję domyślną, aby renderować uwierzytelnione informacje
- Zaloguj się i wyloguj się z aplikacji przy użyciu przepływu użytkownika
Wymagania wstępne
Zmienianie nazwy pliku i dodawanie funkcji w celu renderowania uwierzytelnionych informacji
Domyślnie aplikacja jest uruchamiana za pośrednictwem pliku JavaScript o nazwie App.js. Należy go zmienić na .jsx, czyli rozszerzenie, które umożliwia deweloperowi pisanie kodu HTML w rozwiązaniu React.
Upewnij się , że nazwa App.js została zmieniona na App.jsx.
Zastąp istniejący kod następującym fragmentem kodu:
import { MsalProvider, AuthenticatedTemplate, useMsal, UnauthenticatedTemplate } from '@azure/msal-react'; import { Container, Button } from 'react-bootstrap'; import { PageLayout } from './components/PageLayout'; import { IdTokenData } from './components/DataDisplay'; import { loginRequest } from './authConfig'; import './styles/App.css'; /** * Most applications will need to conditionally render certain components based on whether a user is signed in or not. * msal-react provides 2 easy ways to do this. AuthenticatedTemplate and UnauthenticatedTemplate components will * only render their children if a user is authenticated or unauthenticated, respectively. For more, visit: * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-react/docs/getting-started.md */ const MainContent = () => { /** * useMsal is hook that returns the PublicClientApplication instance, * that tells you what msal is currently doing. For more, visit: * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-react/docs/hooks.md */ const { instance } = useMsal(); const activeAccount = instance.getActiveAccount(); const handleRedirect = () => { instance .loginRedirect({ ...loginRequest, prompt: 'create', }) .catch((error) => console.log(error)); }; return ( <div className="App"> <AuthenticatedTemplate> {activeAccount ? ( <Container> <IdTokenData idTokenClaims={activeAccount.idTokenClaims} /> </Container> ) : null} </AuthenticatedTemplate> <UnauthenticatedTemplate> <Button className="signInButton" onClick={handleRedirect} variant="primary"> Sign up </Button> </UnauthenticatedTemplate> </div> ); }; /** * msal-react is built on the React context API and all parts of your app that require authentication must be * wrapped in the MsalProvider component. You will first need to initialize an instance of PublicClientApplication * then pass this to MsalProvider as a prop. All components underneath MsalProvider will have access to the * PublicClientApplication instance via context as well as all hooks and components provided by msal-react. For more, visit: * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-react/docs/getting-started.md */ const App = ({ instance }) => { return ( <MsalProvider instance={instance}> <PageLayout> <MainContent /> </PageLayout> </MsalProvider> ); }; export default App;
Uruchamianie projektu i logowanie
Dodano wszystkie wymagane fragmenty kodu, dzięki czemu aplikacja może być teraz testowana w przeglądarce internetowej.
Aplikacja powinna już działać w terminalu. Jeśli nie, uruchom następujące polecenie, aby uruchomić aplikację.
npm start
Otwórz przeglądarkę internetową i przejdź do
http://localhost:3000/
adresu , jeśli nie nastąpi automatyczne przekierowanie.Na potrzeby tego samouczka wybierz opcję Zaloguj się przy użyciu okna podręcznego .
Po pojawieniu się okna podręcznego z opcjami logowania wybierz konto, za pomocą którego chcesz się zalogować.
Może pojawić się drugie okno wskazujące, że kod zostanie wysłany na Twój adres e-mail. W takim przypadku wybierz pozycję Wyślij kod. Otwórz wiadomość e-mail od zespołu ds. konta Microsoft nadawcy i wprowadź siedmiocyfrowy kod z jednym użyciem. Po wprowadzeniu wybierz pozycję Zaloguj.
W obszarze Nie wylogowuj się możesz wybrać opcję Nie lub Tak.
Aplikacja prosi o uprawnienie do logowania się i uzyskiwania dostępu do danych. Wybierz pozycję Akceptuj , aby kontynuować.
Wyloguj się z aplikacji
- Aby wylogować się z aplikacji, wybierz pozycję Wyloguj się na pasku nawigacyjnym.
- Zostanie wyświetlone okno z prośbą o wylogowanie się z konta.
- Po pomyślnym wylogowaniu zostanie wyświetlone końcowe okno z poradą, aby zamknąć wszystkie okna przeglądarki.