https://github.com/yisbug/restify-user
一个通用的基于restify和mongoose的用户模块,支持登录登出加密等基础功能,可自由扩展。
https://github.com/yisbug/restify-user
Last synced: 4 months ago
JSON representation
一个通用的基于restify和mongoose的用户模块,支持登录登出加密等基础功能,可自由扩展。
- Host: GitHub
- URL: https://github.com/yisbug/restify-user
- Owner: yisbug
- Created: 2015-03-12T19:56:39.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2017-01-14T02:39:33.000Z (over 9 years ago)
- Last Synced: 2025-10-02T10:41:37.997Z (8 months ago)
- Language: HTML
- Homepage:
- Size: 65.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# restify-user
一个通用的用户模块,基于`restify`,`mongoose`。
每次新建项目都要加用户模块,干脆把这一部分剥离出来,以后用起来方便。
### 等待添加的功能
* 用户名密码约束长度。
* 限制`del`,`put`接口的权限,以适应普通用户的场景。
### 安装
npm install restify-user
### 使用
示例:
```coffeescript
restify = require 'restify'
mongoose = require 'mongoose'
userCenter = require 'restify-user'
server = restify.createServer {}
server.use restify.authorizationParser()
server.use restify.bodyParser mapParams:false
server.use restify.queryParser()
db = mongoose.createConnection 'mongodb://localhost/test'
db.once 'open',->
userCenter server,db,options
sever.listen 8080,->
console.log '%s listening at %s',server.name,server.url
```
`userCenter`接收3个参数,分别为:
* `server`: 即`restify`创建的`server`实例。
* `db`:`mongoose`数据库连接对象
* `options`:其他参数,`object`类型
> 注:`server`需要使用`bodyParser`等中间件
`options`参数支持字段:
* `endpoint` 路由地址,默认为`/user`
* `fields` 用户表其他扩展字段,使用`mongoose`中`Schema`所支持的格式。
* `model` 用户`collection`名称,默认为`admin`
目前还没实现的参数:
* `usernameMinLen` 用户名最小长度,默认为1
* `usernameMaxLen` 用户名最大长度,默认不做限制
* `passwordMinLen` 密码最小长度,默认为1
* `passwordMaxLen` 密码最大长度,默认不做限制
之后会自动创建`/user`路由,支持`restify`的`post/get/del/put`等请求。其中`/user`可在`options`的`entpoint`属性中重新定义。
### 路由
#### `POST /user` 创建用户
参数:
* `username` 登陆用户名
* `nickname` 昵称
* `password` 密码
* 其他自定义字段,由`options`中`fields`字段配置。
返回:
* `200` 创建成功,返回创建的用户数据。
* 其他失败
#### `GET /user` 获取用户列表
参数使用queryString
* `limit` 每页条数,默认不分页
* `page` 页码
返回`object`对象,属性:
* `count` 用户总数
* `list` 用户列表
* `page` 当前页码
#### `PUT /user/:userid` 修改用户基本信息
#### `DEL /user/:userid` 删除用户
#### `GET /user/:userid` 获取用户详细信息
参数使用queryString
* `type` 查询方式,支持`username`,`userid`,默认为`userid`。
#### `GET /user/my` 获取当前已登陆账户信息
#### `POST /user/login` 用户登陆
参数:
* `username`
* `password`
* `grant_type` password
需要设置base token
如果成功则返回`200`,和`access_token`,其他状态为登陆失败。
* `access_token` object,包括:`token`,`username`,`userid`,`nickname`字段
* `token_type`
### 测试
> 所有测试均使用`coffeescript`编写。
#### 运行单个测试
grunt test:[filename]
> 运行单个测试可以不加`test/`路径前缀和`.coffee`后缀。