Provides user creation and authentication.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
test
.babelrc
.gitignore
.npmignore
.travis.yml
LICENSE
README.md
package-lock.json
package.json
webpack.config.base.js
webpack.config.development.js
webpack.config.production.js

README.md

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