npm.io
0.1.0 • Published 6 years ago

jason-user

Licence
Version
0.1.0
Deps
0
Size
251 kB
Vulns
0
Weekly
0

jason-user

一个简单的用户登录状态管理

安装

npm i --save jason-user

API

import User from 'jason-user';
实例化用户

实例化时
将根据 storage 中的数据自动更新一次 this.data
实现记住密码功能

let user = new User({
  // 可选
  // 用户数据存入 sessionStore 或 localStore 中的 key 值
  storageKey: 'jason-user',
  
  // 登录逻辑核心函数
  // 必有
  // 这个函数通常返回 Promise,也可以同步返回结果
  // resolve 或 同步返回值应该是一个对象(或无返回值代表登陆失败)
  // 包含着用户状态数据
  login (params) {
    return data
  },
  
  // 验证用户身份是否有效的核心代码
  // 可选
  // 这个函数通常返回 Promise,也可以同步返回结果
  // 若无,则调用 user.verify 时会返回 false
  // 这个函数应该返回结果 true 和 false
  verify () {
    return false;
  },
  
  // 当用户数据改变时(update)
  // 传入用户状态数据
  onUpdate
})
登录

这个方法将返回一个 Promise
核心实现是基于实例化时传入的 login 函数
resolve 时会有 result 参数(Boolean)
代表登录成功还是失败

user.login()
  .then(result => console.log(result))
// => true / false
获取用户属性

user.data 一定是一个对象或者为 null

console.log(user.data)
更新用户数据

传入的参数会以 assign 的方式进行新旧值对象合并到 this.data
注意:update 方法的参数必须是一个对象或者 null

user.update({ name: 'xxx', age: 18 })
检测用户登录状态是否有效

这个方法将返回一个 Promise
核心实现是基于实例化时传入的 verify 函数
resolve 时会有 result 参数(Boolean)
代表验证成功还是失败

user.verify()
  .then(result => console.log(result))
// => true / false
记录登录状态

默认会以 sessionStorage 的方式记住
传入 true 则以 localStorage 的方式记住

user.remember();
// user.remember(true);
退出登录

将会清空 user.data

user.logout();