# jason-user

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

Latest version **0.1.0** (published 2020-05-01) · 0 weekly downloads

## Install

```sh
npm install jason-user
pnpm add jason-user
yarn add jason-user
bun add jason-user
```

## Health

**Score 10/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; low quality score; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2020-05-01 |
| First published | 2020-04-24 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 251.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | q-jason |

## Links

- npm: https://www.npmjs.com/package/jason-user
- npm.io page: https://npm.io/package/jason-user

## Recent versions

- 0.1.0 (latest) — 2020-05-01
- 0.0.3 — 2020-04-24
- 0.0.2 — 2020-04-24
- 0.0.1 — 2020-04-24

## README

# jason-user
> 一个简单的用户登录状态管理

## 安装
```bash
npm i --save jason-user
```

## API
```javascript
import User from 'jason-user';
```

### 实例化用户
> 实例化时 <br/>
> 将根据 storage 中的数据自动更新一次 this.data <br/>
> 实现记住密码功能
```javascript
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 <br/>
> 核心实现是基于实例化时传入的 login 函数 <br/>
> resolve 时会有 result 参数（Boolean） <br/>
> 代表登录成功还是失败
```javascript
user.login()
  .then(result => console.log(result))
// => true / false
```

### 获取用户属性
> user.data 一定是一个对象或者为 null
```javascript
console.log(user.data)
```

### 更新用户数据
> 传入的参数会以 assign 的方式进行新旧值对象合并到 this.data <br/>
> 注意：update 方法的参数必须是一个对象或者 null
```javascript
user.update({ name: 'xxx', age: 18 })
```

### 检测用户登录状态是否有效
> 这个方法将返回一个 Promise <br/>
> 核心实现是基于实例化时传入的 verify 函数 <br/>
> resolve 时会有 result 参数（Boolean） <br/>
> 代表验证成功还是失败
```javascript
user.verify()
  .then(result => console.log(result))
// => true / false
```

### 记录登录状态
> 默认会以 sessionStorage 的方式记住 <br/>
> 传入 true 则以 localStorage 的方式记住
```javascript
user.remember();
// user.remember(true);
```

### 退出登录
> 将会清空 user.data
```javascript
user.logout();
```

---
_Source: https://npm.io/package/jason-user · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
