provide-user

1.0.0 • Public • Published

provide-user

build status npm version npm downloads

Provides basic user creation and authentication.

Table of contents

  1. Installation
  2. Quick start
  3. Custom usage
  4. Under the hood
  5. Protip
  6. TODO

Installation

npm install provide-user --save

Quick start

It's probably easiest to use Lumbur, as it has everything already setup for you. All you do is copy Lumbur into a new project directory and run npm install. You'll be prompted for details about your new project, and after that you should be good to go!

Custom usage

First, make sure you have a replicator assigned to your provider(s) so that user data can be stored within your database of choice.

import { pushReplicator } from 'react-redux-provide';
import rethinkDB from 'redux-replicate-rethinkdb';
import defaultProps from './defaultProps';
 
pushReplicator(defaultProps.providers, rethinkDB);

Then you'll need to set the hasher you would like to use for hashing user passwords. The provider expects an API matching bcrypt, so it's probably easiest to simply use bcrypt, but you can use anything as long as the API is the same.

import defaultProps from './defaultProps';
import bcrypt from 'bcrypt';
 
defaultProps.providers.user.state = { hasher: bcrypt };

And last but not least, you'll need to use something like provide-id-gen to generate IDs for your users, and something like provide-page to manage user sessions. See Lumbur's UserLogIn component for a complete example.

Under the hood

If you check the source, there isn't much to it! That's because this particular provider is a composition of provide-crud and provide-authentication. More functionality will most likely be coming soon, but for now, this composition gives you the following...

Actions:

  • createUser (Object state, Function genId, Optional Function onSuccess)
  • authenticateUser (Object state, Optional Function onSuccess)
  • updateUser (Object updates, Optional Function onSuccess)
  • deleteUser (Optional Function onSuccess)
  • undeleteUser (Optional Function onSuccess)
  • setUserName (String userName)

And reducers:

  • userId (replicated)
  • userName (replicated, queryable)
  • userPasswordHash (replicated, server-only)
  • userError (replicated)
  • userDeleted (replicated, queryable)

Protip

Use provide-id-gen for your genId argument when creating a user!

TODO

Dependents (2)

Package Sidebar

Install

npm i provide-user

Weekly Downloads

3

Version

1.0.0

License

MIT

Last publish

Collaborators

  • timbur