@sheetbase/user

User management system.

Usage no npm install needed!

<script type="module">
  import sheetbaseUser from 'https://cdn.skypack.dev/@sheetbase/user';
</script>

README

Sheetbase Module: @sheetbase/user

User management system.

Build Status Coverage Status NPM License clasp Support me on Patreon PayPal Ask me anything

Install

Using npm: npm install --save @sheetbase/user

import * as User from "@sheetbase/user";

As a library: 1ThvmvlMcPVBFUzT2QUy6pHiAEsfrKbhLSmju-CCXatiLASXXb8KFssHr

Set the Indentifier to UserModule and select the lastest version, view code.

declare const UserModule: { User: any };
const User = UserModule.User;

Usage

Getting started

Install: npm install --save @sheetbase/user

Usage:

import { auth } from "@sheetbase/user";

const Auth = auth({
  /* configs */
});

Configs

Sheetbase auth configs

databaseDriver

Database driver for auth module, for now only driver support is @sheetbase/sheets.

import { sheets } from "@sheetbase/sheets";
import { auth, sheetsDriver } from "@sheetbase/user";

// Sheets instance
const Sheets = sheets({
  /* configs */
});

const Auth = auth({
  databaseDriver: sheetsDriver(Sheets.toAdmin())
  /* other configs */
});

encryptionSecret

Secret key for signing token.

emailPrefix

App name or any prefix for using when sending OOB emails.

authUrl

Custom url for handling oob actions, a string or a builder that recieves a mode and a code then returns the url.

type AuthUrl = string | ((mode: string, oobCode: string) => string);
// auth url with the apiKey
{
authUrl: (mode, oobCode) => ScriptApp.getService().getUrl() +
        '?e=auth/action&' +
        `mode=${mode}&oobCode=${oobCode}&`
        `apiKey=${apiKey}`,
}

emailSubject

Email subject builder.

type EmailSubject = (mode: string) => string;

emailBody

Email body builder.

type EmailBody = (mode: string, url: string, userData: UserData) => string;

Account

Account related actions.

  • user: create a user instance from data
  • getUser: get a user
  • isUser: check if a user exists
  • getUserByEmailAndPassword: get user by email & password
  • getUserByCustomToken: by custom token
  • getUserAnonymously: anomymously
  • getUserByIdToken: id token
  • getUserByOobCode: oob code
  • getUserByRefreshToken: refresh token
  • getUserByOauthProvider: oauth provider
  • getPublicUsers: public users
  • isValidPassword: check if password is valid

User

The user object.

  • getData
  • getInfo
  • getIdToken
  • comparePassword
  • getProvider
  • getProfile
  • getPublicProfile
  • updateProfile
  • setAdditionalData
  • setSettings
  • setProfilePublicly
  • setProfilePrivately
  • updateClaims
  • setlastLogin
  • setEmail
  • confirmEmail
  • setPassword
  • setUsername
  • setPhoneNumber
  • setOob
  • setRefreshToken
  • delete
  • save

Middlewares

  • Auth.IdTokenMiddleware
  • Auth.UserMiddleware

Routes

To add routes to your app, see options AddonRoutesOptions:

Auth.registerRoutes(options?: AddonRoutesOptions);

License

@sheetbase/user is released under the MIT license.