Руководство. Добавление входа и выхода в React SPA для внешнего клиента
В этом руководстве представлена окончательная часть серии, демонстрирующая создание одностраничного приложения React (SPA) и подготовка его к проверке подлинности с помощью Центра администрирования Microsoft Entra. В части 3 этой серии вы создали SPA React в Visual Studio Code и настроили его для проверки подлинности. На этом последнем шаге показано, как добавить функции входа и выхода в приложение.
В этом руководстве;
- Создание макета страницы и добавление интерфейса входа и выхода
- Замените функцию по умолчанию для отрисовки сведений, прошедших проверку подлинности
- Вход и выход из приложения с помощью пользовательского потока
Необходимые компоненты
Изменение имени файла и добавление функции для отображения сведений, прошедших проверку подлинности
По умолчанию приложение выполняется через файл JavaScript с именем App.js. Он должен быть изменен на JSX, который является расширением, которое позволяет разработчику писать HTML в React.
Убедитесь, что App.js переименован в App.jsx.
Замените существующий код следующим фрагментом кода:
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;
Запуск проекта и вход
Добавлены все необходимые фрагменты кода, поэтому приложение теперь можно протестировать в веб-браузере.
Приложение уже должно работать в терминале. В противном случае выполните следующую команду, чтобы запустить приложение.
npm start
Откройте веб-браузер и перейдите к
http://localhost:3000/
ней, если вы не перенаправляетесь автоматически.В целях работы с этим руководством выберите вариант входа с помощью параметра Всплывающего окна .
После появления всплывающего окна с параметрами входа выберите учетную запись, с которой необходимо войти.
Второе окно может появиться, указывающее, что код будет отправлен на ваш адрес электронной почты. В этом случае выберите "Отправить код". Откройте сообщение электронной почты от команды учетной записи майкрософт отправителя и введите семизначный код одноразового использования. После ввода нажмите кнопку "Войти".
Чтобы оставаться в системе, можно выбрать "Нет" или "Да".
Приложение запрашивает разрешение на вход и доступ к данным. Нажмите кнопку "Принять ", чтобы продолжить.
Выход из приложения
- Чтобы выйти из приложения, выберите " Выйти" на панели навигации.
- Появится окно с запросом учетной записи для выхода из нее.
- После успешного выхода появится окончательное окно, консультирование по закрытию всех окон браузера.