/zuqiujiaolian

Football Coach Community / 足球教练社区

Primary LanguageJavaScriptMIT LicenseMIT

足球训练社区

build status codecov.io David deps node version

介绍

足球训练社区代码fork自CNODEjs社区版

https://github.com/cnodejs/nodeclub

感谢社区的贡献和支持。

小程序客户端

https://github.com/zuqiuxunlian/wechat-cnode

新增API接口

API PATH: https://bbs.zuqiuxunlian.com/v1/api

小程序登录

通过 wx.login() 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程.

POST /user/weixin/login

body

{
    "code": "023eO7eP1npiz91QGvdP1NkdeP1eO7eK",
    "authInfo": Object
}

Response

{
  "success": true,
  "data": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcGVuaWQiOiJvVjVLZjR1UW5waU9RajhOWFNBcEctV2hzMDQwIiwiaWF0IjoxNTU1MTY2NTE2LCJleHAiOjE1NTc3NTg1MTZ9.xxxxxxxxxx"
}

认证用户信息

通过Token或者accessToken获取用户信息。

通过小程序授权产生的token GET /me?token=""

小程序的token用的jwt token,有过期时间设置。可以用来访问所有其他的API

通过web登录产生的token GET /me?accesstoken=""

Response

{
    "success": true,
    "data": {
        "is_block": false,
        "score": 10,
        "topic_count": 2,
        "reply_count": 0,
        "follower_count": 0,
        "following_count": 0,
        "collect_tag_count": 0,
        "collect_topic_count": 0,
        "active": true,
        "receive_reply_mail": false,
        "receive_at_mail": false,
        "create_at": "2019-04-13T13:59:17.781Z",
        "update_at": "2019-04-13T14:12:51.084Z",
        "name": "草帽-王腾",
        "location": "Shenzhen",
        "loginname": "K-KSogo9f",
        "pass": "$2a$10$58M85ZaSUsb3556xdJhKe.qT135nREAuoc1fccoseN6isfZS4/lmi",
        "email": "",
        "avatar": "https://wx.qlogo.cn/mmopen/vi_32/xxxxxxxxxx/132",
        "openid": "xxxxxxxxx-Whs040",
        "accessToken": "6b34cd10-xxxxxxxxxxxxxxx",
    }
}

用户信息修改

修改用户名和密码,可以用于web登录。

POST /me 需要认证

Body

{
	"loginname": "", //用户名,不能重复
	"name": "", //昵称
	"email": "awong1900s@163.com", //邮箱也是唯一
	"url": "", //个人网站
	"location": "", //位置
	"weibo": "",
	"signature": "" //个人介绍
}

Response

200

{
    "success": true,
    "error_msg": "修改成功"
}

500

{
    "success": false,
    "errno": 1,
    "error_msg": "该用户名已使用"
}

用户密码修改

POST /me/change_password 需要认证

Body

这里没有让用户输入原密码,考虑到产品安全性要求不高,此处接受这样处理。

{
	"newPass": "newpassxxxx",
	"rePass": "newpassxxxx"
}

Response

200

{
    "success": true,
    "error_msg": "修改成功"
}

获取上传token

GET /upload_token 需要认证

上传token用于客户端上传图片到七牛云。token有效期为24小时。

上传Token使用文档:https://github.com/qiniu/nodejs-sdk/blob/master/docs/nodejs-sdk-v7.md

上传文件命名用hash命名,避免重复上传:https://developer.qiniu.com/kodo/kb/1365/how-to-avoid-the-users-to-upload-files-with-the-same-key

Response

data值即为upload token

200

{
    "success": true,
    "data": ":Sxxxxxxxxxxx"
}

动态设置API

GET /weapp_config

最好同时隐藏发帖和回帖窗口。

参数 描述
has_post 是否开放小程序发帖和回帖

200

{
    "success": true,
    "data": {
        "has_post": false
    }
}

首页广告API

GET /ads

最好同时隐藏发帖和回帖窗口。

参数 描述
card_ads 首页推广

200

{
    "success": true,
    "data": {
        "card_ads": [
            {
                'name': '广告名称',
                'path': '/pages/article/detail?from=list&id=5d1f03a7fe663115042cd0b6',
                'appid': '',
                'image': 'https://img2.tuhu.org/activity/image/FjaSVA7uSZuH5EHrp9CHTPcnpwgT_w750_h230.jpeg'
            },
            {
                'name': '广告名称2',
                'path': '/pages/article/detail?from=list&id=5d1f03a7fe663115042cd0b6',
                'appid': '',
                'image': 'https://img2.tuhu.org/activity/image/FjaSVA7uSZuH5EHrp9CHTPcnpwgT_w750_h230.jpeg'
            }
        ]
    }
}

原项目介绍

Nodeclub 是使用 Node.jsMongoDB 开发的社区系统,界面优雅,功能丰富,小巧迅速, 已在Node.js 中文技术社区 CNode(http://cnodejs.org) 得到应用,但你完全可以用它搭建自己的社区。

安装部署

不保证 Windows 系统的兼容性

线上跑的是 Node.js v8.12.0,MongoDB 是 v4.0.3,Redis 是 v4.0.9。

1. 安装 `Node.js[必须]` `MongoDB[必须]` `Redis[必须]`
2. 启动 MongoDB 和 Redis
3. `$ make install` 安装 Nodeclub 的依赖包
4. `cp config.default.js config.js` 请根据需要修改配置文件
5. `$ make test` 确保各项服务都正常
6. `$ node app.js`
7. visit `http://localhost:3000`
8. done!

测试

跑测试

$ make test

跑覆盖率测试

$ make test-cov

License

MIT