blues-auth-lib
v1.0.3
Published
This class facilitates Single Sign-On (SSO) integration, handling login URL generation, callback processing, user data fetching, and token saving.
Readme
SSOClient Documentation
This class facilitates Single Sign-On (SSO) integration, handling login URL generation, callback processing, user data fetching, and token saving.
Dependencies
- axios: Handles HTTP requests.
- dotenv: Loads environment variables from a
.envfile.
Installation
- Assumes you have Node.js and npm installed.
- You'll need to install the required dependencies using a package manager like npm.
Usage
- Import the
SSOClientclass into your project. - Load your environment variables (clientId, clientSecret, ssoUrl, callbackUrl) from a
.envfile. - Create an instance of the
SSOClientclass, providing the necessary configuration options. - Use the
getLoginUrlmethod to get the URL to initiate the SSO login process. - Handle the callback after the SSO login (e.g., in an Express route) using the
handleCallbackmethod to extract the token. - Fetch user data using the
fetchUserDatamethod, providing the extracted token. - Render a page to save the token in local storage using the
renderSaveTokenPagemethod.
Class: SSOClient
Constructor
clientId: Your application's client ID from the SSO provider.clientSecret: Your application's client secret from the SSO provider.ssoUrl: The base URL of the SSO provider.callbackUrl: The URL in your application where the SSO provider will redirect after login.
Methods
getLoginUrl(): Returns the URL to initiate the SSO login process.handleCallback(query): Extracts the token from the callback query parameters. Throws an error if no token is found.fetchUserData(token): Fetches user data from the SSO provider's API using the provided token. Returns a Promise that resolves with the user data or rejects with an error.renderSaveTokenPage(token): Generates an HTML page that saves the token in local storage and redirects to the root path ('/').
Important Notes
- Ensure you have a
.envfile with the required environment variables. - Handle potential errors from
handleCallbackandfetchUserData. - Customize the
renderSaveTokenPageas needed for your application's flow.
