后台服务器伪代码
module.exports = {
// 获取第三方sessionKey
get3dSession: function(req, res) {
// 通过appid, appsecret, 以及code换取session_key以及openid
request('url', function(err, res, body) {
// 获取session_key以及openid成功
var sessionValue = body.session_key + body.openid;
// 生成3d_session
var sessionKey = function() {
return randValue;
}
// 以3d_session为key, session_key和openid为value,写入session
req.session[sessionKey] = sessionValue;
// 将3d_session发送给小程序
res.send(sessionKey);
})
},
// 通过第三方sessionKey获取openID以及sessionKey
getOpenID: function(req, res) {
var sessionKey = req.cookies.sessionKey;
if (req.session.sessionKey) {
console.log("有对应的值");
} else {
console.log("没有对应的值");
}
},
};
小程序 onload的时候执行下面的动作
// 将sessionKey保存到Storage
saveSessionKey: function (cb) {
wx.getStorage({
key: "sessionKey",
success: function (res) {
console.log("已经存在sessionKey");
},
fail: function () {
wx.login({
success: function (res) {
if (res.code) {
wx.request({
url: 'http://localhost:1337/onLogin/get3dSession',
data: {
code: res.code
},
success: function (res) {
// 将abzSessionKey保存在Storage
wx.setStorage({
key: 'sessionKey',
data: res.data,
success: function () {
console.log('sessionKey存放成功');
}
})
}
})
}
}
})
}
})
},
getOpenID: function (cb) {
wx.getStorage({
key: "sessionKey",
success: function (res) {
wx.request({
url: config.HTTP_BASE_URL+'/onLogin/getOpenID',
header:{
'cookie': 'sessionKey='+res.data
},
success: function(res){
console.log(res.data);
}
})
},
fail: function () {
console.log("没有sessionKey");
}
})
},
小程序第一次载入的时候,会保存新的sessionKey到session Storage,这很正常
可是重新编译后,根据代码是要在session Storage中查找对应的值,但是显示如下:
生成了新的session记录,都是空的,在这些空的记录中肯定就获得不了值了。
这是为什么?
您好,您这个问题解决了吗?我也遇到了?麻烦指教下啊