@kernel-js/auth

1.0.5 • Public • Published

@kernel-js/auth

Build Status


Install

npm install @kernel-js/auth

Enums

StorageMethods

Exposes the possible ways of storing the data received through native browser drives.

import { StorageMethods } from '@kernel-js/auth';

StorageMethods.LocalStorage
StorageMethods.CookieStorage
StorageMethods.SessionStorage

Classes

OAuthAuthentication

Used for OAuth type password authentication. By default, it uses the model established by Laravel Passport.

new OAuthAuthentication(config);

Arguments

  • config - Object with the authentication settings.
    • request - It waits for an Axios instance and will be used to make the requests.
    • storage - method - Expect a StorageMethods enum that will tell you how to persist the data.
    • client - id - OAuth client id.
    • client - scope - Scope says you want to get (optional).
    • client - secret - Secret of the client OAuth.
import Axios from 'axios';
import { StorageMethods, OAuthAuthentication } from '@kernel-js/auth';

new OAuthAuthentication({
  storage: {
    method: StorageMethods.LocalStorage,
  },
  request: Axios.create({
    baseURL: 'http://localhost:8000',
    headers: {},
  }),
  client: {
    id: '1',
    scope: '',
    secret: 'VRoONFr4soNZkoSYXiYZzcx8H5VfJdUt9IYk1l8o',
  },
});

Methods

All classes use by default the interface Authentication that defines some common methods, being them.

Login

Method that authenticates the user and returns their access tokens, in addition to the expiration date of the user.

new OAuthAuthentication(config...).login(data, url);

Arguments

  • data - Object that holds the user data as the username and password.
  • url (Optional) - path in which the authentication request will be sent. By default /oauth/token is used.
import Axios from 'axios';
import { StorageMethods, OAuthAuthentication } from '@kernel-js/auth';

const auth = new OAuthAuthentication(config...);

auth
  .login({
    'username': 'foo@foo.com',
    'password': '123456',
  })
  .then(response => {
    console.log(auth.isAuthenticated());
  });

Logout

Clears user authentication data.

new OAuthAuthentication(config...).logout();
import Axios from 'axios';
import { StorageMethods, OAuthAuthentication } from '@kernel-js/auth';

const auth = new OAuthAuthentication(config...);

auth
  .logout()
  .then(response => {
    console.log(auth.isGuest());
  });

isGuest

Check if an authenticated user exist.

new OAuthAuthentication(config...).isGuest();
import Axios from 'axios';
import { StorageMethods, OAuthAuthentication } from '@kernel-js/auth';

const auth = new OAuthAuthentication(config...);

console.log(auth.isGuest());

isAuthenticated

Opposite the isGuest method.

new OAuthAuthentication(config...).isAuthenticated();
import Axios from 'axios';
import { StorageMethods, OAuthAuthentication } from '@kernel-js/auth';

const auth = new OAuthAuthentication(config...);

console.log(auth.isAuthenticated());

Authors

This library was developed by Bruno Santos, Carlos Escouto and Gustavo Siqueira

Contribute

Please do! Check out our Contributing guidelines.

License

MIT © 2018-2019 Kernel JS

Package Sidebar

Install

npm i @kernel-js/auth

Weekly Downloads

0

Version

1.0.5

License

MIT

Unpacked Size

52.4 kB

Total Files

27

Last publish

Collaborators

  • gusiq
  • brshunterx
  • carlos_escouto
  • gus-