Skapa en Node.js webbapp för att anropa ett API
Gäller för: Personalklientorganisationer Externa klienter (läs mer)
I den här artikeln förbereder du appprojektet som du skapade i Självstudie: Förbered din externa klientorganisation för att logga in användare i en Node.js webbapp för att anropa ett webb-API. Den här artikeln är den andra delen i en guideserie i fyra delar.
Förutsättningar
- Slutför stegen i den första delen av den här guideserien Förbered extern klientorganisation för att anropa ett API i en Node.js webbapp.
Uppdatera projektfiler
Skapa fler filer, fetch.js, todolistController.js, todos.js, todos.hbs och .env och organisera dem sedan för att uppnå följande projektstruktur:
ciam-sign-in-call-api-node-express-web-app/
├── .env
└── server.js
└── app.js
└── authConfig.js
└── fetch.js
└── package.json
└── auth/
└── AuthProvider.js
└── controller/
└── authController.js
└── todolistController.js
└── routes/
└── auth.js
└── index.js
└── todos.js
└── users.js
└── views/
└── layouts.hbs
└── error.hbs
└── id.hbs
└── index.hbs
└── todos.hbs
└── public/stylesheets/
└── style.css
Installera appberoenden
Installera fler Node-paket i terminalen, axios
, cookie-parser
, body-parser
, method-override
genom att köra följande kommando:
npm install axios cookie-parser body-parser method-override
Uppdatera appgränssnittskomponenter
Öppna filen views/index.hbs i kodredigeraren och lägg sedan till länken Visa din todolist:
<a href="/todos">View your todolist</a>
Filen views/index.hbs ser nu ut ungefär som i följande fil:
<h1>{{title}}</h1> {{#if isAuthenticated }} <p>Hi {{username}}!</p> <a href="/users/id">View your ID token claims</a> <br> <a href="/todos">View your todolist</a> <br> <a href="/auth/signout">Sign out</a> {{else}} <p>Welcome to {{title}}</p> <a href="/auth/signin">Sign in</a> {{/if}}
Vi lägger till en länk till ett användargränssnitt som gör att du kan interagera med api:et ciam-ToDoList-api. Vi definierar expressvägen för den här slutpunkten senare i den här guiden.
Öppna filen i kodredigeraren
views/todos.hbs
och lägg sedan till följande kod:<h1>Todolist</h1> <div> <form action="/todos" method="POST"> <input type="text" name="description" class="form-control" placeholder="Enter a task" aria-label="Enter a task" aria-describedby="button-addon"> <button type="submit" id="button-addon">Add</button> </form> </div> <div class="row" style="margin: 10px;"> <ol id="todoListItems" class="list-group"> {{#each todos}} <li class="todoListItem" id="todoListItem"> <span>{{description}}</span> <form action='/todos?_method=DELETE' method='POST'> <span><input type='hidden' name='_id' value='{{id}}'></span> <span><button type='submit'>Remove</button></span> </form> </li> {{/each}} </ol> </div> <a href="/">Go back</a>
Med den här vyn kan användaren utföra uppgifter som initierar ett API-anrop. När en användare till exempel har loggat in och appen har hämtat en åtkomsttoken kan användaren skapa en resurs (uppgift) i API-appen genom att skicka ett formulär.
Nästa steg
Lär dig sedan hur du loggar in användare och skaffar en åtkomsttoken: