微信海外版 服务器,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();
}
}
微信海外版 服务器,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();
}
}