项目作者: senecajs

项目描述 :
User account business logic (Seneca microservice component)
高级语言: HTML
项目地址: git://github.com/senecajs/seneca-user.git
创建时间: 2012-09-17T10:47:08Z
项目社区:https://github.com/senecajs/seneca-user

开源协议:MIT License

下载


Seneca

A Seneca.js user management plugin.

@seneca/user

@seneca/user"">npm version
build
Coverage Status
Maintainability

Voxgig This open source module is sponsored and supported by Voxgig.

Description

This module is a plugin for
the Seneca framework. It provides a set of
common user management actions (register, login etc.).

Install

  1. npm install seneca
  2. npm install seneca-promisify // dependency
  3. npm install seneca-entity // dependency
  4. npm install @seneca/user

Quick example

Register a user and then create an automatic login for testing.

  1. const Seneca = require('seneca')
  2. var seneca = Seneca()
  3. .use('promisify')
  4. .use('entity')
  5. .use('user')
  6. var out = await seneca.post('sys:user,register:user', {
  7. handle: 'alice'
  8. })
  9. console.log('USER:', out.user)
  10. out = await seneca.post('sys:user,login:user', {
  11. handle: 'alice',
  12. auto: true
  13. })
  14. console.log('LOGIN:', out.login)

Detailed Examples

Because Seneca treats messages as first-class citizens, 90% of unit
testing can be implemented with message scenarios that also provide
detailed usage examples:

Action Patterns

Action Descriptions

« adjust:user,sys:user »

Adjust user status idempotently (activated, etc.).

Parameters

  • active : boolean {presence:optional}
  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if user found',
  3. user: 'user entity'
  4. }

« auth:user,sys:user »

Authenticate a login using token

Parameters

  • token : string {presence:required}
  • user_fields : array {presence:optional}
  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if login is active',
  3. user: 'user entity',
  4. login: 'user entity'
  5. }

« change:pass,sys:user »

Change user password.

Parameters

  • pass : string
  • repeat : string {presence:optional}
  • verify : string {presence:optional}
  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if changed',
  3. user: 'user entity'
  4. }

« change:handle,sys:user »

Change user handle.

Parameters

  • new_handle : string
  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if changed',
  3. user: 'user entity'
  4. }

« change:email,sys:user »

Change user email.

Parameters

  • new_email : string
  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if changed',
  3. user: 'user entity'
  4. }

« change:password,sys:user »

Change user password.

Parameters

  • pass : string
  • repeat : string {presence:optional}
  • verify : string {presence:optional}
  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if changed',
  3. user: 'user entity'
  4. }

« check:verify,sys:user »

Check a verfication entry.

Parameters

  • kind : string {presence:optional}
  • code : string {presence:optional}
  • now : number {presence:optional}
  • expiry : boolean {presence:optional}
  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if valid',
  3. why: 'string coded reason if not valid'
  4. }

« check:exists,sys:user »

Check user exists.

Parameters

  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if user exists',
  3. user: 'user entity'
  4. }

« cmd:encrypt,hook:password,sys:user »

Encrypt a plain text password string.

Examples

  • cmd:encrypt,hook:password,sys:user,pass:foofoobarbar
    • Result: {ok:true, pass:encrypted-string, salt:string}

      Parameters

  • salt : string {presence:optional}
  • pass : string {presence:optional}
  • password : string {presence:optional}
  • rounds : number {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if encryption succeeded',
  3. pass: 'encrypted password string',
  4. salt: 'salt value string'
  5. }

« cmd:pass,hook:password,sys:user »

Validate a plain text password string.

Examples

  • cmd:pass,hook:password,sys:user,pass:goodpassword
    • Result: {ok:true}

      Parameters

  • salt : string
  • pass : string
  • proposed : string
  • rounds : number {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if password is valid',
  3. why: 'string coded reason if not valid'
  4. }

« get:user,sys:user »

Get user details

Parameters

  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if user found',
  3. user: 'user entity'
  4. }

« list:user,sys:user »

List users

Parameters

  • active : boolean {presence:optional}
  • q : object {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if user found',
  3. items: 'user entity item list'
  4. }

« list:login,sys:user »

List logins for a user

Parameters

  • active : boolean {presence:optional}
  • login_q : object {presence:optional}
  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if user found',
  3. items: 'user entity item list'
  4. }

« list:verify,sys:user »

Create a verification entry (multiple use cases).

Parameters

  • kind : string
  • code : string {presence:optional}
  • once : boolean {presence:optional}
  • valid : boolean {presence:optional}
  • custom : object {presence:optional}
  • expire_point : number {presence:optional}
  • expire_duration : number {presence:optional}
  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if user found',
  3. verify: 'verify entity'
  4. }

« login:user,sys:user »

Login user

Parameters

  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}
  • auto : boolean {presence:optional}
  • pass : string {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if user logged in',
  3. user: 'user entity',
  4. login: 'login entity'
  5. }

« logout:user,sys:user »

Login user

Parameters

  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}
  • token : string {presence:optional}
  • login_in : string {presence:optional}
  • login_q : object {presence:optional,default:{}}
  • load_logins : boolean {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if user logged in',
  3. count: 'number of logouts'
  4. }

« make:verify,sys:user »

Create a verification entry (multiple use cases).

Parameters

  • kind : string
  • code : string {presence:optional}
  • once : boolean {presence:optional}
  • valid : boolean {presence:optional}
  • custom : object {presence:optional}
  • expire_point : number {presence:optional}
  • expire_duration : number {presence:optional}
  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if user found',
  3. verify: 'verify entity'
  4. }

« register:user,sys:user »

Register a new user

Parameters

  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • user : object {unknown:true}
  • user_data : object {unknown:true}

Replies With

  1. {
  2. ok: '_true_ if user registration succeeded',
  3. user: 'user entity'
  4. }

« remove:user,sys:user »

Remove a user

Parameters

  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if user removed',
  3. user: 'user entity'
  4. }

« sys:user,update:user »

Update a user

Parameters

  • user : object {presence:optional}
  • id : string {presence:optional}
  • user_id : string {presence:optional}
  • email : string {presence:optional}
  • handle : string {presence:optional}
  • nick : string {presence:optional}
  • q : object {presence:optional}
  • fields : array {presence:optional}

Replies With

  1. {
  2. ok: '_true_ if user updated',
  3. user: 'user entity'
  4. }

License

Copyright (c) 2010-2020, Richard Rodger and other contributors.
Licensed under MIT.