provide-user
Provides basic user creation and authentication.
Table of contents
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.
;;; ;
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.
;; defaultPropsprovidersuserstate = 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
- OAuth?
- JWT?
- What do you deem necessary?