Tutorial: Membuat aplikasi web Node.js untuk memasukkan pengguna
Tutorial ini adalah bagian 2 dari seri yang menunjukkan pembuatan aplikasi web Node.js dan menyiapkannya untuk autentikasi menggunakan pusat admin Microsoft Entra. Di bagian 1 dari seri ini Anda mendaftarkan aplikasi dan mengonfigurasi alur pengguna di penyewa eksternal Anda. Dalam tutorial ini, Anda membuat proyek Node.js(Express) dan mengatur semua folder dan file yang Anda butuhkan. Anda mengaktifkan masuk ke aplikasi yang Anda siapkan di sini. Tampilan aplikasi web Node.js(Express) ini menggunakan Handlebar.
Dalam tutorial ini Anda akan;
- Buat proyek Node.js
- Instal dependensi
- Menambahkan tampilan aplikasi dan komponen UI
Prasyarat
- Tutorial: Menyiapkan penyewa eksternal Anda untuk memasukkan pengguna di aplikasi web Node.js
- Meskipun setiap lingkungan pengembangan terintegrasi (IDE) yang mendukung aplikasi React dapat digunakan, tutorial ini menggunakan Visual Studio Code.
- Node.js.
- Visual Studio Code, atau editor kode lainnya.
Membuat proyek Node.js Anda
Di lokasi pilihan di komputer Anda, buat folder untuk menghosting aplikasi node Anda, seperti ciam-sign-in-node-express-web-app.
Di terminal Anda, ubah direktori ke folder aplikasi web Node Anda, seperti
cd ciam-sign-in-node-express-web-app
, lalu jalankan perintah berikut untuk membuat proyek Node.js baru:npm init -y
Perintah
init -y
membuat file package.json default untuk proyek Node.js Anda.Buat folder dan file tambahan untuk mencapai struktur proyek berikut:
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
Instal dependensi aplikasi
Untuk menginstal identitas yang diperlukan dan Node.js paket npm terkait, jalankan perintah berikut di terminal Anda
npm install express dotenv hbs express-session axios cookie-parser http-errors morgan @azure/msal-node
Membangun komponen antarmuka pengguna aplikasi
Di editor kode Anda, buka file views/index.hbs , lalu tambahkan kode berikut:
<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}}
Dalam tampilan ini, jika pengguna diautentikasi, kami menunjukkan nama pengguna dan tautan mereka untuk mengunjungi
/auth/signout
dan/users/id
titik akhir, jika tidak, pengguna perlu mengunjungi/auth/signin
titik akhir untuk masuk. Kami menentukan rute ekspres untuk titik akhir ini nanti di artikel ini.Di editor kode Anda, buka file views/id.hbs , lalu tambahkan kode berikut:
<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>
Kami menggunakan tampilan ini untuk menampilkan klaim token ID yang dikembalikan microsoft Entra External ID ke aplikasi ini setelah pengguna berhasil masuk.
Di editor kode Anda, buka file views/error.hbs , lalu tambahkan kode berikut:
<h1>{{message}}</h1> <h2>{{error.status}}</h2> <pre>{{error.stack}}</pre>
Kami menggunakan tampilan ini untuk menampilkan kesalahan apa pun yang terjadi saat aplikasi berjalan.
Di editor kode Anda, buka file views/layout.hbs , lalu tambahkan kode berikut:
<!DOCTYPE html> <html> <head> <title>{{title}}</title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> {{{content}}} </body> </html>
File
layout.hbs
berada dalam file tata letak. Ini berisi kode HTML yang kami butuhkan di seluruh tampilan aplikasi.Di editor kode Anda, buka public/stylesheets/style.css, file, lalu tambahkan kode berikut:
body { padding: 50px; font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; } a { color: #00B7FF; }