express作为小程序后台,session的问题

发布于 2022-09-04 08:10:55 字数 3447 浏览 17 评论 0

后台服务器伪代码

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记录,都是空的,在这些空的记录中肯定就获得不了值了。

图片描述

这是为什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倾听心声的旋律 2022-09-11 08:10:55

您好,您这个问题解决了吗?我也遇到了?麻烦指教下啊

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文