Git Product home page Git Product logo

web-wechat-login's Introduction

web-wechat-login

用于web网站实现微信签名和微信登陆的一个node模块,该模块最初开发为在express中使用,如需在其他平台使用,可与本人取得联系。

NPM Version

安装

npm install --save web-wechat-login

用法简介

构造函数

var webLogin = require('web-wechat-login');

var wechat = new webLogin({
    appId : '{{appID}}',
    appSecret:'{{appSecret}}',
    callbackUrl:'{{http://api.example.com/wechat/callback}}'
});

appId和appSecret请移步于微信开发平台上认证申请。

wechat.login(req , res);

用于Express的路由routes下,请自定义页面请求地址,访问后自动重定向到微信二维码登陆页面。 示例如下:

/* GET wechat login page. */
router.get('/wechat/login', function (req, res) {
    wechat.login(req, res);
});

若需直接获取微信二维码登陆地址,则直接调用loginUrl方法。 示例如下:

var loginUrl = wechat.loginUrl();

注:若提示“redirect_uri 参数错误”,请检查参数是否填写错误,如callbackUrl的域名与审核时填写的授权域名不一致。

wechat.authorize(req , res);

用于Express的路由routes下,请自定义页面请求地址,手机访问后自动重定向到微信授权页面。 示例如下:

/* GET wechat authorize page. */
router.get('/wechat/authorize', function (req, res) {
    wechat.authorize(req, res);
});

若需直接获取微信认证确认地址,则直接调用authorizeUrl方法。 示例如下:

var authorizeUrl = wechat.authorizeUrl();

wechat.callback(req , res)

回调地址请与callbackUrl参数保持一致,该方法会接收微信回调,并进行一系列认证,直到拿到用户信息。==请注意,在用户修改微信头像后,旧的微信头像URL将会失效,因此开发者应该自己在获取用户信息后,将头像图片保存下来,避免微信头像URL失效后的异常情况。== 使用示例。方法返回promise。

/* listen wechat callback. */
router.all('/wechat/callback', function (req, res) {
    wechat.callback(req, res).then(function (result) {
            var user = {
                openid    : result.openid,
                unionid   : result.unionid,
                nickname  : result.nickname,
                headimgurl: result.headimgurl,
                sex       : result.sex
            };
            req.session.user = user;
            res.redirect('/')
        }).catch(function (err) {
            res.send('err' + err);
        });
});

返回说明

正确的Json返回结果:

{ 
"openid":"OPENID",
"nickname":"NICKNAME",
"sex":1,
"province":"PROVINCE",
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
"privilege":[
"PRIVILEGE1", 
"PRIVILEGE2"
],
"unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
}
参数 说明
openid 普通用户的标识,对当前开发者帐号唯一
nickname 普通用户昵称
sex 普通用户性别,1为男性,2为女性
province 普通用户个人资料填写的省份
city 普通用户个人资料填写的城市
country 国家,如**为CN
headimgurl 用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空
privilege 用户特权信息,json数组,如微信沃卡用户为(chinaunicom)
unionid 用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的。

建议:开发者最好保存用户unionID信息,以便以后在不同应用中进行用户信息互通。

错误的Json返回示例:

{ 
"errcode":40003,"errmsg":"invalid openid"
}

web-wechat-login's People

Contributors

ouyangmr avatar

Stargazers

Paul Zhang avatar  avatar Garen avatar jacklong avatar z avatar  avatar

Watchers

 avatar

Forkers

davidyu37

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.