npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

provide-user

v1.0.0

Published

Provides basic user creation and authentication.

Downloads

33

Readme

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