account-password
A login service that enables secure password-based login. current version only support mongodb database
Install
npm install account-password --save
Test
npm inpm test
Defining your account schema
e.g:
const mongoose = require;const Schema = mongoose.Schema;const UserSchema = new Schema;const User = mongoose.model;
Account data struct
const Account = require;const options =
API
The parameter password
supports plaintext password and sha256 signaturem, recommend to use sha256 signature
e.g
const sha256 = require; //plaintext passwordpassword = '123456'; //sha256 signaturempassword =
createUser(options)
Register a user by username or email or otherwise
Inputs options
username
require.email
optional.password
optional. plaintext password or sha256 signature,optional
is for compatibility with other registration, such mobile verification code or third parties
Return value
Promise, registered user info
loginWithPassword(options)
Login with username or email
Inputs options
username
optional.email
optional.password
require. plaintext password or sha256 signature
Return value
loginWithToken(options)
Used to check whether the token is expired
Inputs options
resume
require. Token returned by login
Return value
changePassword(userId, oldPassword, newPassword)
Change user password
Inputs options
userId
require. user idoldPassword
require. plaintext password or sha256 signaturenewPassword
require. plaintext password or sha256 signature
Return value
Object. {userId: 'xxx'}
checkPassword(user, password)
Check user password
Inputs options
user
require. Must contain 'services.password.bcrypt' fieldpassword
require. plaintext password or sha256 signature
Return value
Object.If the password match return {userId: 'xxx'}, otherwise return {error: 'Incorrect password'}
resetPassword(token, newPlaintextPassword)
Reset user password
Inputs options
token
require. login tokennewPlaintextPassword
require. plaintext password or sha256 signature
Return value
Object. {userId: 'xxx'}
setPassword(userId, newPlaintextPassword)
Set user password
Inputs options
userId
require. user idnewPlaintextPassword
require. plaintext password or sha256 signature
Return value
Object. {userId: 'xxx'}
Other ways login
Post verification call Account._generateLoginToken({userId:'xxxxxx'})