1.0.7 • Published 9 years ago
restify-user v1.0.7
restify-user
一个通用的用户模块,基于restify,mongoose。
每次新建项目都要加用户模块,干脆把这一部分剥离出来,以后用起来方便。
等待添加的功能
- 用户名密码约束长度。
- 限制
del,put接口的权限,以适应普通用户的场景。
安装
npm install restify-user使用
示例:
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.urluserCenter接收3个参数,分别为:
server: 即restify创建的server实例。db:mongoose数据库连接对象options:其他参数,object类型
注:
server需要使用bodyParser等中间件
options参数支持字段:
endpoint路由地址,默认为/userfields用户表其他扩展字段,使用mongoose中Schema所支持的格式。model用户collection名称,默认为admin
目前还没实现的参数:
usernameMinLen用户名最小长度,默认为1usernameMaxLen用户名最大长度,默认不做限制passwordMinLen密码最小长度,默认为1passwordMaxLen密码最大长度,默认不做限制
之后会自动创建/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 用户登陆
参数:
usernamepasswordgrant_typepassword
需要设置base token
如果成功则返回200,和access_token,其他状态为登陆失败。
access_tokenobject,包括:token,username,userid,nickname字段token_type
测试
所有测试均使用
coffeescript编写。
运行单个测试
grunt test:[filename]运行单个测试可以不加
test/路径前缀和.coffee后缀。