koa-wechat-auth

1.4.3 • Public • Published

一个微信授权的node小服务。

需要自己提供一个配置文件和一个首页html。

首先npm install koa-wxauth

然后在package.json里面的script写入

"auth": "cross-env CONFIG=./config/auth.config.js PORT=80 supervisor ./node_modules/koa-wxauth"

注意此处的 auth.config.js 是自己配置的。给一个大概的参考配置:

module.exports = {
  // 注册此服务的授权路由,此服务的controller为/auth/normal
  redirect_uri: "",
  // 授权方式
  scope: "snsapi_userinfo",
  // 首页html地址
  html_src: "./views/index.html",
  // 微信app信息
  wxApp: {
    appId: "",
    appSecret: "",
    appName: "",
    id: 0
  },
  // 鉴权,判断是否需要授权,true -> 不需要授权,false -> 需要授权
  authentication: ctx => {
    let token = ctx.cookies.get("token");
    return !!token;
  },
  // 生成token
  createTOKEN(wxApp, wxUser, user) {
    const JWTUtil = require("jwt-simple");
    const JWT_SECRET = "";
    let nowDate = Math.ceil(Date.now() / 1000);
    let expDate = nowDate + 30 * 24 * 60 * 60; //30天过期时间
    let data = {
      oid: wxUser.openid,
      sub: wxUser.unionid,
      app: wxApp.appName,
      exp: expDate,
      wx_app_id: wxApp.id,
      id: wxUser.user_id
    };
    return JWTUtil.encode(data, JWT_SECRET);
  },
  // 注入token
  injectTOKEN(ctx, token) {
    const domain = "";
    const path = "/";
    ctx.cookies.set("token", token, {
      domain: domain,
      path: path,
      expires: new Date(Date.now() + 604800000)
    });
  },
  // 获取到用户数据之后,希望做一发什么样的操作,比如将用户信息插入数据库什么的
  createUser(wxUser, wxApp) {}
};

Readme

Keywords

none

Package Sidebar

Install

npm i koa-wechat-auth

Weekly Downloads

0

Version

1.4.3

License

MIT

Unpacked Size

89 kB

Total Files

26

Last publish

Collaborators

  • zheng_refn