mushroomjs-auth

Extension Authentication for mushroomjs

Usage no npm install needed!

<script type="module">
  import mushroomjsAuth from 'https://cdn.skypack.dev/mushroomjs-auth';
</script>

README



Install

npm install mushroomjs-auth

Dependent on

mushroomjs

Import

import mushroom from "mushroomjs-auth";

Or

import mushroom from "mushroomjs";
import "mushroomjs-auth";

Usage

Login

var remember = true; // true - no expired, false - will auto expired after mushroom.$auth.expiredTime minute(s) inactive
let token = await mushroom.$auth.loginAsync("your account", "your password", remember);

Logout

const logoutMode = "invalidClientSession"; // or invalidServerSession, invalidAllSession
await mushroom.$auth.logoutAsync({ mode: logoutMode });

Status

let status = await mushroom.$auth.statusAsync();

Me

let me = await mushroom.$auth.meAsync();

Register

let result = await mushroom.$auth.registerAsync("your account", "your password");

Activate

await mushroom.$auth.activateAsync("your account", "activation code");

Recover password

await mushroom.$auth.recoverPasswordAsync("your account");

Reset password

await mushroom.$auth.resetPasswordAsync("your account", "your code", "your new password");

Change password

await mushroom.$auth.changePasswordAsync("your account", "your old password", "your new password")

Events

// mushroom.$auth.on(eventName, fnHandler);
mushroom.$auth.on("ready", () => {});
mushroom.$auth.on("loggedin", () => {});
mushroom.$auth.on("loggedout", () => {});

State

mushroom.$auth.isReady will be true right before 'ready' event is fired
mushroom.$auth.expiredTime config the minutes that session will be expired if doesn't set remember=true in login method

Manual set token

var remember = true; // true - no expired, false - will auto expired after mushroom.$auth.expiredTime minute(s) inactive
mushroom.$auth.setToken("your token", remember);

Override

If you want to override the built-in methods above, define your custom method like:

mushroom.foo.registerAsync = function(account, password, type) {
    return mushroom.__createAsyncRestFunction({
        name: "$auth.register", // Identify your method
        method: "POST",
        blankBody: false,
        url: mushroom._fnGetRootApiUrl() + "custom register url"
    })({account: account, password: password, type: type, x: 1, y: 2});
};