最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

微信海外版 服务器,node

运维笔记admin67浏览0评论

微信海外版 服务器,node

微信海外版 服务器,node

@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)

  1. 暂无评论