Configurar um aplicativo Web Node.js para edição de perfil
Aplica-se a: Círculo branco com um símbolo X cinzento. Locatários do workforce Círculo verde com um símbolo de marca de verificação branco. Locatários externos (saiba mais)
Depois que os usuários clientes entrarem com êxito em seu aplicativo voltado para o exterior, você poderá permitir que eles editem seus perfis. Você permite que os utilizadores do cliente gerenciem os seus perfis usando o ponto final do Microsoft Graph API. Chamar o endpoint /me
requer um utilizador conectado e, portanto, uma permissão delegada.
Para garantir que apenas o usuário faça alterações em seu perfil, o usuário precisa concluir um desafio de MFA.
Neste guia, você aprenderá a configurar seu aplicativo Web para dar suporte à edição de perfil com proteção de autenticação multifator (MFA):
- O aplicativo usa a política de Acesso Condicional para habilitar o requisito de MFA.
- A configuração do aplicativo Web contém dois serviços Web, o aplicativo Web cliente e um aplicativo de serviço de camada intermediária.
- A aplicação web cliente autentica o utilizador e lê e exibe o perfil do utilizador.
- O aplicativo de serviço de camada intermediária adquire um token de acesso e, em seguida, edita o perfil em nome do usuário.
Propriedades atualizáveis
Para personalizar os campos que os usuários clientes podem editar em seus perfis, escolha entre as propriedades listadas na linha Atualizar perfil da tabela em APIs e permissões do Microsoft Graph.
Pré-requisitos
- Conclua as etapas no Tutorial: Configurar o seu inquilino externo para autenticar utilizadores numa aplicação web Node.js da série de tutoriais. O tutorial mostra como registrar um aplicativo em seu locatário externo e criar um aplicativo Web que conecta usuários. Referimo-nos a esta aplicação Web como a aplicação Web cliente
- Conclua as etapas em Iniciar sessão de utilizadores e editar perfil numa aplicação web de exemplo em Node.js. Este artigo mostra como configurar seu locatário externo para edição de perfil.
Atualizar o aplicativo Web cliente
Adicione os seguintes arquivos ao seu cliente Node.js aplicativo we (diretório de aplicativos ):
- Crie views/gatedUpdateProfile.hbs e views/updateProfile.hbs.
- Crie fetch.js.
Atualizar componentes da interface do usuário do aplicativo
No editor de códigos, abra o arquivo App/views/index.hbs e adicione um link Editar perfil usando o seguinte trecho de código:
<a href="/users/gatedUpdateProfile">Edit profile</a>
Depois de fazer a atualização, seu arquivo App/views/index.hbs deve ser semelhante ao seguinte arquivo:
<h1>{{title}}</h1> {{#if isAuthenticated }} <p>Hi {{username}}!</p> <a href="/users/id">View ID token claims</a> <br> <a href="/users/gatedUpdateProfile">Profile editing</a> <br> <a href="/auth/signout">Sign out</a> {{else}} <p>Welcome to {{title}}</p> <a href="/auth/signin">Sign in</a> {{/if}}
No editor de códigos, abra o arquivo App/views/gatedUpdateProfile.hbs e adicione o seguinte código:
<h1>Microsoft Graph API</h1> <h3>/me endpoint response</h3> <div style="display: flex; justify-content: left;"> <div style="size: 400px;"> <label>Id :</label> <label> {{profile.id}}</label> <br /> <label for="email">Email :</label> <label> {{profile.mail}}</label> <br /> <label for="userName">Display Name :</label> <label> {{profile.displayName}}</label> <br /> <label for="userName">Given Name :</label> <label> {{profile.givenName}}</label> <br /> <label for="userSurname">Surname :</label> <label> {{profile.surname}}</label> <br /> </div> <div> <br /> <br /> <a href="/users/updateProfile"> <button>Edit Profile</button> </a> </div> </div> <br /> <br /> <a href="/">Go back</a>
- Este arquivo contém um formulário HTML que representa os detalhes editáveis do usuário.
- O usuário precisa selecionar o botão Editar perfil para atualizar seu nome de exibição, mas o usuário deve concluir um desafio de MFA se ainda não tiver feito isso.
No editor de códigos, abra o arquivo App/views/updateProfile.hbs e adicione o seguinte código:
<h1>Microsoft Graph API</h1> <h3>/me endpoint response</h3> <div style="display: flex; justify-content: left;"> <div style="size: 400px;"> <form id="userInfoForm" action="/users/update" method="POST"> <label>Id :</label> <label> {{profile.id}}</label> <br /> <label>Email :</label> <label> {{profile.mail}}</label> <br /> <label for="userName">Display Name :</label> <input type="text" id="displayName" name="displayName" value="{{profile.displayName}}" /> <br /> <label for="userName">Given Name :</label> <input type="text" id="givenName" name="givenName" value="{{profile.givenName}}" /> <br /> <label for="userSurname">Surname :</label> <input type="text" id="surname" name="surname" value="{{profile.surname}}" /> <br /> <button type="submit" id="button">Save</button> </form> </div> <br /> </div> <a href="/">Go back</a>
Esse arquivo contém um formulário HTML que representa os detalhes editáveis do usuário, mas só visível depois que o usuário cliente conclui o desafio MFA.
Instalar dependências de aplicativos
No seu terminal, instale mais pacotes Node, axios
, , cookie-parser
body-parser
, method-override
, executando o seguinte comando:
npm install axios cookie-parser body-parser method-override
Configurar a aplicação de nível intermédio
Nesta seção, você configura o aplicativo intermediário.
Crie um diretório de API .
Para criar seu projeto de aplicativo de camada intermediária, navegue até o diretório da API e execute o seguinte comando:
npm init -y
No diretório da API , crie novos arquivos, authConfig.js, fetch.js e index.js.
Para instalar dependências de aplicativos intermediários, execute o seguinte comando:
npm install express express-session axios cookie-parser http-errors @azure/msal-node body-parser uuid