Skip to content

NextJS example using Keycloak as authentication server.

Notifications You must be signed in to change notification settings

Halazv2/keycloak-nextjs

Repository files navigation

Keycloak

This web application demonstrates how to use Keycloak as an authentication and an authorization system for both a client application (written in React and NextJs) and a server (written in NodeJS).

The functionalities of this application are the following:

  • A client application, which has a public section composed of the home page and a public route. In addition, there are 2 protected routes with different levels of authorization (user and admin).
  • The client application allows to login using username and password, then, based on the user role, it allows interacting with the protected routes.
  • A server with 2 objectives: it serves the client application and it provides a set of API for authenticate the users and for executing some actions with 3 levels of authorization (public, user and admin)
  • Keycloak in this scenario keeps the identity of the users, defining different roles (user and admin), and generates tokens which are used to authenticate a user.

Therefore, the application demonstrates how to create 3 levels of authorization (public, user and admin) and for each level it provides 2 actions which can be triggered using a REST paradigm through the client (only if correctly authenticated).

Installation

Prerequisites

  • docker
  • nodejs

Installation steps

git clone https://github.com/Halazv2/keycloak-nextjs.git
  • run the docker-compose file, which deploys Keycloak, MySQL (used by Keycloak) and the web application (both client and server)
npm install
  • build and start the application
npm run build

npm run start

Now the application is ready to be used navigating on http://localhost:3006

Note: we are working on our internship project and the keycloak server we are using is hosted, clone the repo and modify the URL, realm and clientID

About

NextJS example using Keycloak as authentication server.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published