https://github.com/authorizerdev/authorizer-js
Universal javaScript SDK for Authorizer API
https://github.com/authorizerdev/authorizer-js
hacktoberfest
Last synced: 5 months ago
JSON representation
Universal javaScript SDK for Authorizer API
- Host: GitHub
- URL: https://github.com/authorizerdev/authorizer-js
- Owner: authorizerdev
- License: mit
- Created: 2021-07-18T12:32:11.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-05-10T14:09:00.000Z (over 1 year ago)
- Last Synced: 2025-07-22T12:42:48.270Z (6 months ago)
- Topics: hacktoberfest
- Language: TypeScript
- Homepage:
- Size: 949 KB
- Stars: 25
- Watchers: 3
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Authorizer.js
[`@authorizerdev/authorizer-js`](https://www.npmjs.com/package/@authorizerdev/authorizer-js) is universal javaScript SDK for Authorizer API.
It supports:
- [UMD (Universal Module Definition)](https://github.com/umdjs/umd) build for browsers
- [CommonJS(cjs)](https://flaviocopes.com/commonjs/) build for NodeJS version that don't support ES Modules
- [ESM (ES Modules)](https://hacks.mozilla.org/2018/03/es-modules-a-cartoon-deep-dive/) build for modern javascript standard, i.e. ES Modules
# Migration Guide from 1.x -> 2.x
`2.x` version of `@authorizerdev/authorizer-js` has a uniform response structure that will help your applications to get right error codes and success response. Methods here have `{data, errors}` as response objects for methods of this library.
For `1.x` version of this library you can get only data in response and error would be thrown so you had to handle that in catch.
---
All the above versions require `Authorizer` instance to be instantiated and used. Instance constructor requires an object with the following keys
| Key | Description |
| --------------- | ---------------------------------------------------------------------------- |
| `authorizerURL` | Authorizer server endpoint |
| `redirectURL` | URL to which you would like to redirect the user in case of successful login |
**Example**
```js
const authRef = new Authorizer({
authorizerURL: 'https://app.herokuapp.com',
redirectURL: window.location.origin,
});
```
## IIFE
- Step 1: Load Javascript using CDN
```html
```
- Step 2: Use the library to instantiate `Authorizer` instance and access [various methods](/authorizer-js/functions)
```html
const authorizerRef = new authorizerdev.Authorizer({
authorizerURL: `AUTHORIZER_URL`,
redirectURL: window.location.origin,
clientID: 'YOUR_CLIENT_ID', // can be obtained from authorizer dashboard
});
// use the button selector as per your application
const logoutBtn = document.getElementById('logout');
logoutBtn.addEventListener('click', async function () {
await authorizerRef.logout();
window.location.href = '/';
});
async function onLoad() {
const { data, errors } = await authorizerRef.authorize({
response_type: 'code',
use_refresh_token: false,
});
if (data && data.access_token) {
// get user profile using the access token
const { data: user, errors } = await authorizerRef.getProfile({
Authorization: `Bearer ${res.access_token}`,
});
// logoutSection.classList.toggle('hide');
// userSection.innerHTML = `Welcome, ${user.email}`;
}
}
onLoad();
```
## CommonJS
- Step 1: Install dependencies
```sh
npm i --save @authorizerdev/authorizer-js
OR
yarn add @authorizerdev/authoirzer-js
```
- Step 2: Import and initialize the authorizer instance
```js
const { Authorizer } = require('@authorizerdev/authoirzer-js');
const authRef = new Authorizer({
authorizerURL: 'https://app.heroku.com',
redirectURL: 'http://app.heroku.com/app',
});
async function main() {
await authRef.login({
email: 'foo@bar.com',
password: 'test',
});
}
```
## ES Modules
- Step 1: Install dependencies
```sh
npm i --save @authorizerdev/authorizer-js
OR
yarn add @authorizerdev/authorizer-js
```
- Step 2: Import and initialize the authorizer instance
```js
import { Authorizer } from '@authorizerdev/authorizer-js';
const authRef = new Authorizer({
authorizerURL: 'https://app.heroku.com',
redirectURL: 'http://app.heroku.com/app',
});
async function main() {
await authRef.login({
email: 'foo@bar.com',
password: 'test',
});
}
```
## Local Development Setup
### Prerequisites
- [Pnpm](https://pnpm.io/installation)
- [NodeJS](https://nodejs.org/en/download/)
### Setup
- Clone the repository
- Install dependencies using `pnpm install`
- Run `pnpm build` to build the library
- Run `pnpm test` to run the tests
### Release
- Run `pnpm release` to release a new version of the library