1.4.8 • Published 3 months ago

rxjs-auth v1.4.8

Weekly downloads
16
License
MIT
Repository
github
Last release
3 months ago

rxjs-auth

Simple javascript auth-manager based on rxjs

--

Usage

Create manager

import RxjsAuth, { AuthTokenStorage } from "rxjs-auth";

const authmanager = RxjsAuth.create("myProjectIdentifier", {
  login: (credentials) => axios.post("/give-me-my-access-token", credentials).then(res => res.data),
  fetchUser: (token) => axios.post("/who-am-i", { headers: { "Authorization": "Bearer " + token } }).then(res => res.data),
  // optional
  isUserLogged: (resFromFetchUser) => !!resFromFetchUser,
  getAccessToken: (loginData) => loginData.accessToken,
  getRefreshToken: (loginData) => loginData.refreshToken, 
  tokenStorage: AuthTokenStorage.localStorage // default value is memory
});

export { authmanager };

Enjoy !

First, include access token in your requests headers with getAccessToken()

axios.interceptors.request.use(function(config) {
  const accessToken = authmanager.getAccessToken();

  if (token) {
    config.headers.Authorization = `Bearer ${accessToken}`;
  }

  return config;
});

Then, login with login()

console.log(authmanager.logged); // false
console.log(authmanager.user); // null
console.log(authmanager.loading); // false, true while authmanager is logging
await authmanager.login(credentials);
console.log(authmanager.logged); // true
console.log(authmanager.user); // ...

Default configuration

const defaultOptions: AuthClientOptions = {
  isUserLogged: (data) => !!data && Object.keys(data).length > 0,
  tokenStorage: AuthTokenStorage.default,
  getAccessToken: (data) => data,
  getRefreshToken: () => null,
};

Subscribe

authmanager.loadingSubject.subscribe(_loading => console.log("loading: " + _loading));
authmanager.loggedSubject.subscribe(_logged => console.log("logged: " + _logged));
authmanager.userSubject.subscribe(_user => console.log("user: " + _user));

Sync at startup

// Fetch the user from the previously stored token
authmanager.sync();

Logout

authmanager.logout();

Update options

authmanager.setOptions({
    tokenStorage: AuthTokenStorage.cookie
});
1.4.8

3 months ago

1.4.6

2 years ago

1.4.7

1 year ago

1.4.5

2 years ago

1.3.6

2 years ago

1.4.4

2 years ago

1.4.3

2 years ago

1.4.2

2 years ago

1.4.1

2 years ago

1.4.0

2 years ago

1.2.7

2 years ago

1.3.5

2 years ago

1.2.6

2 years ago

1.3.4

2 years ago

1.2.5

2 years ago

1.3.3

2 years ago

1.2.4

2 years ago

1.3.2

2 years ago

1.2.3

2 years ago

1.3.1

2 years ago

1.3.0

2 years ago

1.2.0

2 years ago

1.1.1

2 years ago

1.2.1

2 years ago

1.1.0

3 years ago

1.0.9

3 years ago

1.0.10

3 years ago

1.0.8

3 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.3

4 years ago

1.0.0

4 years ago