This project demonstrates how to use OIDC in a Vue.js 3 application.
Note: Running oidc-client-ts in web browser is not the best option, better to use BFF (see this video that explains it)
-
Quasar - UI Library (can be any UI framework)
-
Pinia - State management
-
oidc-client-ts - Typescript library for OIDC
-
jwt-decode - View JWT content payload (optional)
-
Node.js - Build system
-
Podman - to deploy docker images (or docker desktop)
-
pnpm - Package dependencies (npm will also work)
For the demo the IDP keycloak is used. Keycloak is deployed in a docker container and configured trough scripts.
Under windows:
StartKeycloakServer.bat
This will start the Keycloak server on port 8080. Open an web browser with http://localhost:8080
-
Login as
admin
with passwordadminpwd
-
Switch from
master
realm todemo
realm -
Create two users:
-
User
demo-user-manager
with passworddemo-user-manager
and join to groupdemo-group-manager
-
User
demo-user-admin
with passworddemo-user-admin
and join group `demo-group-admin'
-
pnpm install # Download dependencies
pnpm run dev # Start webserver on port 9000
-
Open web browser on 'http://localhost:9000'
-
Login with created used credentials