1.4.8 • Published 3 months ago
rxjs-auth v1.4.8
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