微信海外版 服务器,node-weixin开源微信API与服务器项目新版本发布

@calidion 话说,微信oauth接口好用嘛?

跟我这个比,你的比我复杂还是简单:

/**

* 页面认证用户信息

* 1.优先从本地存储中获取用户信息(以openId是否存在为依据)

* 2.如果本地没有openId则优先以静默方式请求用户信息(用户自己清空本地缓存的情况)

* 3.以上都没有,则要求用户进行微信网页授权流程,授权后返回当前页面

*

* @param callback

* 用户信息认证后的回调函数,为保证ajax请求同步, 请在回调函数内使用localStorage取用户信息,

* 多数情况下没问题,但在用户第一次授权时如果不在回调内访问localStorage 可能存在取不到值的情况

*/

function oauthWeiXinUser(callback) {//S.alert(‘微信权限认证’);

var redirectUri = S.locationURL();

var openid = localStorage.getItem("user.openid");

if (openid == null || openid == undefined || openid == 'undefined') {

var code = S.getQueryString("code");//S.alert('本地无用户信息, Code: ' + code);

if (code == null || code == undefined) {//S.alert('向微信发起授权请求');

/*先靜默方式找用户信息,

*如果静默方式找不到则要求用户授权

*/

oauthUserBase(redirectUri);

} else {

var state = S.getQueryString('state');//通过state区分是base还是userinfo请求 S.alert("state: " + state);

if (state === 'base') { //S.alert('静默回调');

getUserInfoQuiet(function () {//S.alert('DB中有信息');

callback();

}, function () { //S.alert('DB无信息'); S.alert("发起授权请求" + redirectUri);

//向微信发起授权请求

//去除原先URL微自己带的参数

redirectUri = redirectUri.split('&code=')[0].split('code=')[0];//防止code在第一个参数位置

oauthUserInfo(redirectUri);

});

}

if (state == 'userinfo') { //S.alert('授权回调');

//用户网页授权后服务端获取用户信息

getUserInfoOauth(callback);

}

}

} else { //S.alert('获取到本地用户信息');

console.log('获取到本地用户信息');//S.alert('获取到本地用户信息');

callback();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值