app-nodejs-html5: HTML5 Service Invocation Application
===================================================
Level: Beginner
Technologies: HTML5, JavaScript
Summary: HTML5 Service Invocation Application run under Express
Target Product: Keycloak
Source:
What is it?
-----------
The `app-nodejs-html5` quickstart demonstrates how to write an application with HTML5 and JavaScript that authenticates
using Keycloak. Once authenticated the application shows how to invoke a service secured with Keycloak.
System Requirements
-------------------
You need to have Node.js version 12.x or later installed.
The quickstart requires that you have the [service-nodejs](../service-nodejs/README.md) running. It assumes the
services are located at `http://localhost:3000/service`. If the services are running elsewhere you need to edit
`app.js` and replace the value of `serviceUrl`.
Configuration in Keycloak
-----------------------
Prior to running the quickstart you need to create a client in Keycloak and download the installation file.
The following steps show how to create the client required for this quickstart:
* Open the Keycloak admin console
* Select `Clients` from the menu
* Click `Create`
* Add the following values:
* Client ID: You choose (for example `marketing-html5`)
* Client Protocol: `openid-connect`
* Root URL: URL to the application (for example `http://localhost:8080/marketing-html5`).
* Click `Save`
If you deploy the application somewhere else change the hostname and port of the URLs accordingly.
Once saved you need to change the `Access Type` to `public` and click save.
Finally you need to configure the JavaScript adapter, this is done by retrieving the adapter configuration file:
* Click on `Installation` in the tab for the client you created
* Select `Keycloak OIDC JSON`
* Click `Download`
* Move the file `keycloak.json` to the `src/main/webapp` directory in the root of the quickstart
As an alternative you can create the client by importing the file [client-import.json](config/client-import.json) and
copying [config/keycloak-example.json](config/keycloak-example.json) to `src/main/webapp/keycloak.json`.
Build and Deploy the Quickstart
--------------------------------
1. Open a terminal and navigate to the root directory of this quickstart.
2. The following shows the command to deploy the quickstart:
````
npm install
npm run start
````
Access the Quickstart
---------------------
You can access the application with the following URL: .
The application provides buttons that allows invoking the different endpoints on the service:
* Invoke public - Invokes the public endpoint and doesn't require a user to be logged-in
* Invoke secured - Invokes the secured endpoint and requires a user with the role `user` to be logged-in
* Invoke admin - Invokes the secured endpoint and requires a user with the role `admin` to be logged-in
If you invoke the endpoints without the required permissions an error will be shown.