解决小程序无法触发SESSION问题

一、首先找到第一次发起网络请求的地址,将服务器返回set-cookie当全局变量存储起来

wx.request({
 ......
 success: function(res) {
 console.log(res.header);
 //set-cookie:PHPSESSID=ic4vj84aaavqgb800k82etisu0; path=/; domain=.fengkui.net

 // 登录成功,获取第一次的sessionid,存储起来
 // 注意:Set-Cookie(开发者工具中调试全部小写)(远程调试和线上首字母大写)
 wx.setStorageSync("sessionid", res.header["Set-Cookie"]);
 }
})

二、请求时带上将sessionid放入request的header头中传到服务器,服务器端可直接在cookie中获取

wx.request({
 ......
 header: {
 'content-type': 'application/json', // 默认值
 'cookie': wx.getStorageSync("sessionid")
 //读取sessionid,当作cookie传入后台将PHPSESSID做session_id使用
 },
 success: function(res) {
 console.log(res)
 }
})

三、后台获取cookie中的PHPSESSID,将PHPSESSID当作session_id使用

<?php
// 判断$_COOKIE['PHPSESSID']是否存在,存在则作session_id使用
if ($_COOKIE['PHPSESSID']) {
 session_id($_COOKIE['PHPSESSID']);
}
session_start();echo session_id();

总结

以上所述是小编给大家介绍的解决小程序无法触发SESSION问题,希望对大家有所帮助!

(0)

相关推荐

  • 微信小程序性能优化之checkSession的使用

    一直发现小程序好慢,尤其是第一次打开的时候.因为第一次会涉及到登录的授权,官方文档是这么说的: 通过 wx.login() 获取到用户登录态之后,需要维护登录态.开发者要注意不应该直接把 session_key.openid 等字段作为用户的标识或者 session 的标识,而应该自己派发一个 session 登录态(请参考登录时序图). 所以后台存储了一个session标识,和微信的session_key 是独立的.而且业务自身的session也有设置有效期,和微信的session_key 是

  • 微信小程序 http请求的session管理

    微信小程序 http请求的session管理 作为一个开发JavaWeb应用的程序猿,都喜欢将用户登录后的用户信息(比如说用户id,用户名称)放入session中保存,之后在业务逻辑的开发中需要用到用户信息的时候就可以轻松又方便的从session中取到值.最近在开发微信小程序的时候碰到一个问题就是每次微信小程序请求的时候都会改变sessionid,这就会导致在后面的请求中取不到登录时保存在session中的用户信息,其实在前后端分离开发的时候也会碰到这个问题,后端程序员负责服务器端开发,提供接口

  • 微信小程序实现Session功能及无法获取session问题的解决方法

    因为小程序原生不支持Cookie,因此也不支持Session. 网上找到的的一些方法有缺陷,而且很多累赘,估计没有实际测试过,在此直接给出实测可用的代码. 大概思路就是借助小程序本地储存+网络请求的header可读可写来实现类似浏览器的cookies保存session功能. 直接上代码 function NetRequest({url, data, success, fail, complete, method = "POST", header = { 'Content-type':

  • 微信小程序开发一键登录 获取session_key和openid实例

    微信小程序开发一键登录 获取session_key和openid实例 思来想去不愿自己的微信小程序是个单机版本.自己又不会写后台.现在借助leancloud可以实现微信小程序一键登录功能.尝试后,做笔记. 第一步:下载av-weapp.js,放到utils下. 第二步:使用 const AV = require('../../utils/av-weapp.js');路径根据具体情况而定. 第三步:做初始化. AV.init({ appId: 'EJx0NSfY********-gzGzoHsz'

  • 微信小程序 获取session_key和openid的实例

    微信小程序 获取session_key和openid的实例 说说获取session_key和openid的条件 1.AppID(小程序ID); 2.AppSecret(小程序密钥); 3.登录时获取code; 注意:即使获取到了appid,未通过打款验证,也是不能拿到code的. 打印出来是这样的. 获取流程: 1.公众平台上找到AppID(小程序ID)和AppSecret(小程序密钥); 2.微信小程序中调用API获取code wx.login({ success: function(res)

  • 解决小程序无法触发SESSION问题

    一.首先找到第一次发起网络请求的地址,将服务器返回set-cookie当全局变量存储起来 wx.request({ ...... success: function(res) { console.log(res.header); //set-cookie:PHPSESSID=ic4vj84aaavqgb800k82etisu0; path=/; domain=.fengkui.net // 登录成功,获取第一次的sessionid,存储起来 // 注意:Set-Cookie(开发者工具中调试全部

  • 微信小程序登录会话密钥session失效解决方案

    目录 一.登录会话密钥 session_key 有效性 二.解决登录session_key 的问题 案例:解决session_key 过期问题,发送个人信息后台解密 后端解密信息,存入数据库 mysql数据库存表情设置 三.后端,如何解析wx.getUserInfor中的用户信息. 用户信息官方文档 数据加密官方文档 一.登录会话密钥 session_key 有效性 https://developers.weixin.qq.com/miniprogram/dev/framework/open-a

  • 详解解决小程序中webview页面多层history返回问题

    小程序开发中遇到的问题:小程序中嵌套了一个webview页面,webview页面中有静默授权(A1页面静默授权后重定向到A2页面),点小程序原生的返回按钮会返回到A1页面,然后页面就会反复静默授权 预期表现:点小程序原生的返回按钮后返回到小程序上个页面 解决方案:通过history.pushState添加历史记录名目,history.onpopstate监听历史记录条目发生变化时,调用小程序APIwx.navigateBack window.addEventListener('popstate'

  • 使用kbone解决Vue项目同时支持小程序问题

    什么是kbone 微信小程序开发过程中,许多开发者会遇到 小程序 与 Web 端一起的需求,由于 小程序 与 Web 端的运行环境不同,开发者往往需要维护两套类似的代码,这对开发者来说比较耗费力气,并且会出现不同步的情况. 为了解决上述问题,微信小程序推出了同构解决方案 kbone 来解决此问题. 那么, kbone 要怎么使用呢?这里我们将通过一个 todo 的例子来跟大家讲解. 基本结构 首先,我们来看下一个基本的 kbone 项目的目录结构(这里的 todo 是基于 Vue 的示例, kb

  • 微信小程序登录session的使用

    获取微信小程序登录的session,整个过程如下: 第一步:小程序取得要往服务端传的 js_code App({ onLaunch: function() { wx.login({ success: function(res) { if (res.code) { //TODO } else { console.log('获取用户登录态失败!' + res.errMsg) } } }); } }) 第二步:服务器接收js_code,然后调用微信接口验证,获取session_key 接口调用地址:h

  • 微信小程序保持session会话的方法

    一般我们web网站都会有cookie来保存session ID,将用户和服务器保持在一次会话中,但是很遗憾,微信小程序不支持cookie,他的每一次请求就是一次会话,这样就会产生一个问题,每次请求都需要确定当前的用户是谁,但是我们又不能在每次请求的数据中携带用户的信息,这样是不安全的.今天就介绍两种方式来实现保持会话. 第一种:客户端保存session ID 1.通过wx.login接口获取 code,将code传递到后台(一般后台都有shiro或者Spring security这种过滤器,该方

  • 微信小程序-详解微信登陆、微信支付、模板消息

    微信公众平台近日悄然开始内测微信小程序(微信公众号)功能,引来无数开发者和普通用户关注,微信支付的能力,是随着小程序的发布一并推出的,具有介绍如下: wx.login(OBJECT) 调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key).用户数据的加解密通讯需要依赖会话密钥完成. OBJECT参数说明: success返回参数说明: 示例代码: //app.js App({ onLaunch: functio

  • 小程序分享模块超级详解(推荐)

    导语:在小程序项目开发中,分享能力几乎是每个项目必备的要求,但原生的分享能力比较有限,不够灵活,今天就我们就一起来研究下,如何在现有基础上,增强小程序分享的能力,使信息传递更加直观.灵活. 示例项目地址: https://github.com/ycvcb123/share-system 小程序分享基础 API 介绍 微信分享的 API 只提供了分享给微信好友的能力,并没有提供分享朋友圈的能力,这是为啥子呢!!! 从网上收集的一些咨询来看,主要有如下两点原因: 由于微商泛滥,公众号鸡汤泛滥,朋友圈

  • 微信小程序常用简易小函数总结

    本文实例讲述了微信小程序常用简易小函数.分享给大家供大家参考,具体如下: 最近一直在写微信小程序,而且由于是第二次写了,所以针对很多通用的情况封装了一些函数,建议你们放在app.js中,方便全局去调用. 提示类函数 微信有一种原生的API用于显示提示类结果的wx.showToast,而且其中的图片是可以自定义的,所以为了保证全部一致性,而且方便调用,所以我将其全部封装在了app.js中: // 成功 showSuccess: function (message) { wx.showToast({

随机推荐