Keycloak Passport Strategy - oAuth2/OIDC
This library offers a production-ready and maintained Keycloak Passport connector that offers the following key features:
Use multiple realms in the same application (multi-tenancy)
Use with oAuth2/Open ID Connect 'clients' in keycloak
Fetch users' data from keycloak automatically via the JSON API
Why? Hasn't this already been done?
To a certain extent, yes. There are about 3 to 4 repos that brand themselves as 'Keycloak Passport', yet not a single one of them is actively maintained and most of them are either completely empty, don't allow using multiple realms, only implement part of the protocol, and/or don't fetch the user's data from Keycloak. There also exists a dedicated NodeJS connector by the Keycloak project itself, however, it is unusable if you are seeking to have Keycloak as 'yet another' passport strategy in your app. This project fills that gap.
npm install @exlinc/keycloak-passport
// Register the strategy with passportpassport;
All forms of contribution are welcome via Issues and Pull-requests to this repo