https://github.com/developerjosh/blues-auth-lib
https://github.com/developerjosh/blues-auth-lib
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/developerjosh/blues-auth-lib
- Owner: DeveloperJosh
- Created: 2024-08-13T19:24:51.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-13T19:33:51.000Z (almost 2 years ago)
- Last Synced: 2025-03-11T01:37:01.626Z (over 1 year ago)
- Language: TypeScript
- Size: 2.93 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
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 `.env` file.
## 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 `SSOClient` class into your project.
* Load your environment variables (clientId, clientSecret, ssoUrl, callbackUrl) from a `.env` file.
* Create an instance of the `SSOClient` class, providing the necessary configuration options.
* Use the `getLoginUrl` method 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 `handleCallback` method to extract the token.
* Fetch user data using the `fetchUserData` method, providing the extracted token.
* Render a page to save the token in local storage using the `renderSaveTokenPage` method.
## 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 `.env` file with the required environment variables.
* Handle potential errors from `handleCallback` and `fetchUserData`.
* Customize the `renderSaveTokenPage` as needed for your application's flow.