Självstudie: Skapa en Node.js webbapp för att logga in användare
Den här självstudien är del 2 i en serie som visar hur du skapar en Node.js webbapp och förbereder den för autentisering med hjälp av administrationscentret för Microsoft Entra. I del 1 av den här serien registrerade du ett program och konfigurerade användarflöden i din externa klientorganisation. I den här självstudien skapar du ett Node.js(Express)-projekt och organiserar alla mappar och filer som du behöver. Du aktiverar inloggning till det program som du förbereder här. Den här Node.js(Express)-webbappens vyer använder styren.
I den här självstudien ska du;
- Skapa ett Node.js-projekt
- Installera beroenden
- Lägga till appvyer och gränssnittskomponenter
Förutsättningar
- Självstudie: Förbereda din externa klientorganisation för att logga in användare i en Node.js webbapp
- Även om alla integrerade utvecklingsmiljöer (IDE) som stöder React-program kan användas, använder den här självstudien Visual Studio Code.
- Node.js.
- Visual Studio Code eller någon annan kodredigerare.
Skapa Node.js-projektet
På valfri plats på datorn skapar du en mapp som är värd för nodprogrammet, till exempel ciam-sign-in-node-express-web-app.
I terminalen ändrar du katalogen till nodwebbappmappen, till exempel
cd ciam-sign-in-node-express-web-app
, och kör sedan följande kommando för att skapa ett nytt Node.js projekt:npm init -y
Kommandot
init -y
skapar en standardfil för package.json för ditt Node.js projekt.Skapa ytterligare mappar och filer för att uppnå följande projektstruktur:
ciam-sign-in-node-express-web-app/ ├── server.js └── app.js └── authConfig.js └── package.json └── .env └── auth/ └── AuthProvider.js └── controller/ └── authController.js └── routes/ └── auth.js └── index.js └── users.js └── views/ └── layouts.hbs └── error.hbs └── id.hbs └── index.hbs └── public/stylesheets/ └── style.css
Installera appberoenden
Om du vill installera nödvändiga identitets- och Node.js relaterade npm-paket kör du följande kommando i terminalen
npm install express dotenv hbs express-session axios cookie-parser http-errors morgan @azure/msal-node
Skapa appgränssnittskomponenter
Öppna filen views/index.hbs i kodredigeraren och lägg sedan till följande kod:
<h1>{{title}}</h1> {{#if isAuthenticated }} <p>Hi {{username}}!</p> <a href="/users/id">View ID token claims</a> <br> <a href="/auth/signout">Sign out</a> {{else}} <p>Welcome to {{title}}</p> <a href="/auth/signin">Sign in</a> {{/if}}
I den här vyn, om användaren autentiseras, visar vi deras användarnamn och länkar för att besöka
/auth/signout
och/users/id
slutpunkter, annars måste användaren besöka/auth/signin
slutpunkten för att logga in. Vi definierar expressvägarna för dessa slutpunkter senare i den här artikeln.Öppna filen views/id.hbs i kodredigeraren och lägg sedan till följande kod:
<h1>Azure AD for customers</h1> <h3>ID Token</h3> <table> <tbody> {{#each idTokenClaims}} <tr> <td>{{@key}}</td> <td>{{this}}</td> </tr> {{/each}} </tbody> </table> <a href="/">Go back</a>
Vi använder den här vyn för att visa ID-tokenanspråk som Microsoft Entra External ID returnerar till den här appen när en användare har loggat in.
Öppna filen views/error.hbs i kodredigeraren och lägg sedan till följande kod:
<h1>{{message}}</h1> <h2>{{error.status}}</h2> <pre>{{error.stack}}</pre>
Vi använder den här vyn för att visa eventuella fel som inträffar när appen körs.
Öppna filen views/layout.hbs i kodredigeraren och lägg sedan till följande kod:
<!DOCTYPE html> <html> <head> <title>{{title}}</title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> {{{content}}} </body> </html>
Filen
layout.hbs
finns i layoutfilen. Den innehåller HTML-koden som vi behöver i hela programvyn.I kodredigeraren öppnar du public/stylesheets/style.css, fil och lägger sedan till följande kod:
body { padding: 50px; font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; } a { color: #00B7FF; }