2.0.3 • Published 2 years ago

@elyash14/next-keycloak v2.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Next Keycloak

An authentication library based on Keycloak for NextJs applications

Next Keycloak powered by Typescript, React and keycloak Use it as a react provider to authenticate keycloak users

NPM version

Features

  • Support Keycloak public client
  • Access user information and token in both client & server side

Requirements

  • Keycloak.js version 11 or above
  • React version 16 or above
  • NextJs version 10 or above

Installation

Install package with this command

npm i @elyash14/next-keycloak
or
yarn add @elyash14/next-keycloak

Make a config file in _app.tsx or _app.jsx and wrap your component with NextKeycloakAuthProvider like this:

const config:KeycloakConfig = {
  realm: process.env.NEXT_PUBLIC_KEYCLOAK_REAM,
  url: process.env.NEXT_PUBLIC_KEYCLOAK_URL,
  clientId: process.env.NEXT_PUBLIC_KEYCLOAK_CLIENT_ID,
};

const initOption :KeycloakInitOptions = {
  onLoad: 'check-sso',
  silentCheckSsoRedirectUri:
    'http://localhost:3000/silent-check-sso.html',
}

function MyApp({ Component, pageProps }: AppProps) {
  return (
    <NextKeycloakAuthProvider config={config} initOption={initOption}>
      <Component {...pageProps} />
     </NextKeycloakAuthProvider>
  );
}
export default MyApp;

Also you can provide initialOption based on keycloak documentation and pass it to the provider. Note that the above example supports "silent check sso" and needs an HTML in your public folder. Create the silent-check-sso.html file in the public folder and put the below content into it.

<html>
<body>
    <script>
        parent.postMessage(location.href, location.origin)
    </script>
</body>
</html>

And that's it... now you can use useNextKeycloakAuth in your pages and components like this:

const {authenticated, loading } = useNextKeycloakAuth();

See this example for full example.

Authors

Elyas Mosayebi @elyash14

License

MIT

2.0.3

2 years ago

2.0.2

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.0.0

3 years ago