1.4.10 • Published 1 year ago
rxjs-auth v1.4.10
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.9
1 year ago
1.4.10
1 year ago
1.4.8
2 years ago
1.4.6
3 years ago
1.4.7
3 years ago
1.4.5
3 years ago
1.3.6
4 years ago
1.4.4
3 years ago
1.4.3
3 years ago
1.4.2
3 years ago
1.4.1
3 years ago
1.4.0
4 years ago
1.2.7
4 years ago
1.3.5
4 years ago
1.2.6
4 years ago
1.3.4
4 years ago
1.2.5
4 years ago
1.3.3
4 years ago
1.2.4
4 years ago
1.3.2
4 years ago
1.2.3
4 years ago
1.3.1
4 years ago
1.3.0
4 years ago
1.2.0
4 years ago
1.1.1
4 years ago
1.2.1
4 years ago
1.1.0
5 years ago
1.0.9
5 years ago
1.0.10
5 years ago
1.0.8
5 years ago
1.0.7
5 years ago
1.0.6
5 years ago
1.0.5
5 years ago
1.0.4
5 years ago
1.0.2
5 years ago
1.0.1
5 years ago
1.0.3
5 years ago
1.0.0
5 years ago