Руководство: добавить функциональные компоненты входа и выхода в одностраничное приложение React
Статья
В этом руководстве описана настройка одностраничного приложения React для проверки подлинности. В части 1 этой сериивы создали React SPA и подготовили его для аутентификации. В этом руководстве вы узнаете, как добавить потоки проверки подлинности, добавив библиотеку проверки подлинности Майкрософт (MSAL) функциональные компоненты в приложение и создайте адаптивный пользовательский интерфейс для приложения.
В этом руководстве:
Добавление функциональных компонентов в приложение
Создание способа отображения сведений профиля пользователя
Создание макета, отображающего интерфейс входа и выхода
Добавление функциональных компонентов в приложение
Функциональные компоненты — это стандартные блоки приложений React и используются для создания возможностей входа и выхода в приложении.
Добавление компонента NavigationBar
Панель навигации предоставит возможность входа и выхода для приложения. Переменная экземпляра, установленная ранее в файле index.js, будет использоваться для вызова методов входа и выхода, которые перенаправят пользователя обратно на страницу входа.
Откройте src/components/NavigationBar.jsx и добавьте следующий фрагмент кода;
import { AuthenticatedTemplate, UnauthenticatedTemplate, useMsal } from '@azure/msal-react';
import { Navbar, Button } from 'react-bootstrap';
import { loginRequest } from '../authConfig';
export const NavigationBar = () => {
const { instance } = useMsal();
const handleLoginRedirect = () => {
instance.loginRedirect(loginRequest).catch((error) => console.log(error));
};
const handleLogoutRedirect = () => {
instance.logoutRedirect().catch((error) => console.log(error));
};
/**
* 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.
*/
return (
<>
<Navbar bg="primary" variant="dark" className="navbarStyle">
<a className="navbar-brand" href="/">
Microsoft identity platform
</a>
<AuthenticatedTemplate>
<div className="collapse navbar-collapse justify-content-end">
<Button variant="warning" onClick={handleLogoutRedirect}>
Sign out
</Button>
</div>
</AuthenticatedTemplate>
<UnauthenticatedTemplate>
<div className="collapse navbar-collapse justify-content-end">
<Button onClick={handleLoginRedirect}>Sign in</Button>
</div>
</UnauthenticatedTemplate>
</Navbar>
</>
);
};
Сохраните файл.
Добавление компонента PageLayout
Компонент PageLayout будет использоваться для отображения основного содержимого приложения и может быть настроен для включения любого дополнительного содержимого, которое вы хотите отобразить на каждой странице приложения. Сведения о профиле пользователя отображаются путем передачи информации через реквизиты.
Откройте src/components/PageLayout.jsx и добавьте следующий фрагмент кода;
import { AuthenticatedTemplate } from '@azure/msal-react';
import { NavigationBar } from './NavigationBar.jsx';
export const PageLayout = (props) => {
/**
* 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.
*/
return (
<>
<NavigationBar />
<br />
<h5>
<center>Welcome to the Microsoft Authentication Library For React Tutorial</center>
</h5>
<br />
{props.children}
<br />
<AuthenticatedTemplate>
<footer>
<center>
How did we do?
<a
href="https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR_ivMYEeUKlEq8CxnMPgdNZUNDlUTTk2NVNYQkZSSjdaTk5KT1o4V1VVNS4u"
rel="noopener noreferrer"
target="_blank"
>
{' '}
Share your experience!
</a>
</center>
</footer>
</AuthenticatedTemplate>
</>
);
}
Сохраните файл.
Добавление компонента DataDisplay
Компонент DataDisplay будет использоваться для отображения сведений профиля пользователя и таблицы утверждений, которые будут созданы в следующем разделе руководства. Компонент IdTokenData будет использоваться для отображения утверждений в токене идентификатора.
Откройте src/components/DataDisplay.jsx и добавьте следующий фрагмент кода;
Продемонстрировать функции идентификатора Microsoft Entra для модернизации решений удостоверений, реализации гибридных решений и реализации управления удостоверениями.