@gneiss/client-auth
v1.0.8
Published
A client for the Gneiss authentication service
Downloads
485
Readme
js-gneiss-auth-client
A JavaScript client library for integrating with the Gneiss Authentication service. Provides OAuth2 authentication flow with support for access and refresh tokens.
Installation
Installing from npm registry:
npm install @gneiss/client-authUsage
Example for an Express.js application:
import express from 'express';
import { ExpressAuthGneissClient } from "@gneiss/client-auth";
import { AuthGneissCoreConfig } from '@gneiss/client-auth';
// Create express app
const app = express();
// Initialize auth config
const config: AuthGneissCoreConfig = {
clientId: "<Your app's client ID>,
clientSecret: "<Your app's client secret>",
baseClientUrl: "<Your app's base url>",
callbackUrl: "/callback"
};
//Instantiate the auth client with config
const auth = new ExpressAuthGneissClient(config);
// Login route - redirects to Gneiss login page
app.get("/login", auth.login);
// Logout route - redirects to Gneiss logout page
app.get("/logout", auth.logout);
// Callback route - handles OAuth callback from Gneiss
app.get("/callback", auth.handleCallBack);
// Protected route example
app.get("/dashboard", auth.requireAuth, (req, res) => {
res.send('This is a protected route');
});
// Protected user data route
app.get("/user", auth.requireAuth, auth.getUser);
ExpressAuthGneissClientis a class that provides middleware for handling authentication in an Express.js application. Parameters are:clientId- This is the client id of your application. This will be provided to you by the appropriate Gneiss team member.clientSecret- This is the client secret of your application. This will be provided to you by the appropriate Gneiss team member.baseClientUrl- This is the base url (without any endpoints) of your service/app. Note that this may be different depending on your environment (prod or dev)callbackUrl- This is the route that the user will be redirected to for authentication. This should be the same as your callback route.
auth.loginis a function that redirects the user to the Gneiss authentication service for authentication.auth.handleCallBackis a function that handles the callback from the Gneiss authentication service. It extracts the auth code from the request URL parameters, exchanges it for tokens, and sets the access and refresh tokens in the response cookies.auth.requireAuthis a middleware function that checks if the user is authenticated. If the user is not authenticated, it redirects the user to the login page.auth.getUseris an included utility route to allow one to retrieve the current user's data. It is important to include theauth.requireAuthmiddleware to ensure the access token is present before accessing the user's data. If it is not, an exeption will be thrown.
