微信小程序请求API接口PHPSESSID变化的解决方式

微信小程序开发,请求服务器API的方法使用的是微信官方提供的wx.request()方法。在开发中发现,每一个请求都会生成一个独立的PHPSESSID,如下图示:

搜索后得知,这是由于wx.request()造成的。如果直接使用浏览器请求并不会出现这种情况。

解决方式如下:

  通过登录接口获取到用户的session_key 和 open_id,设置session信息如下:

  $3rd_session = md5(session_key . $open_id)
  $_SESSION[$3rd_session ] = session_key . ‘|‘ . $open_id;

  服务器生成此用户的session_id,接口返回 3rd_session 和 session_id。

  在其他接口请求中,在header中设置cookie的值:session_id:

  header = header || {
      ‘content-type‘: ‘application/x-www-form-urlencoded;‘,
      ‘Cookie‘: ‘PHPSESSID=session_id值‘
  }           

  并在接口中带上参数session=3rd_session,此时服务端获取到的就是同一个session_id,根据3rd_session从$_SESSION得到用户的openid

  

原文地址:https://www.cnblogs.com/cqingt/p/8529868.html

时间: 2024-11-05 07:37:18

微信小程序请求API接口PHPSESSID变化的解决方式的相关文章

微信小程序通过api接口将json数据展现到小程序示例

实现知乎客户端的一个重要知识前提就是,要知道怎么通过知乎新闻的接口,来把数据展示到微信小程序端上. 那么我们这一就先学习一下,如何将接口获取到的数据展示到微信小程序上. 1.用到的知识点 <1> wx.request 请求接口资源(微信小程序api中的发起请求部分) <2>swiper 实现轮播图的组件 <3>wx:for 循环语句 <4>微信小程序的基础知识 2.实现原理 首先,先看一下这个请求函数 wx.request({ url: '******',

微信小程序wx.request接口

微信小程序wx.request接口 wx.request是小程序客户端与服务器端交互的接口 HTTPS 请求 一个微信小程序,只能同时(同时不能大于5个)有5个网络请求 wx.request(OBJECT) 发起网络请求 url data header method dataType wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '' , y: '' }, header: { 'content-type': 'applicat

把微信小程序异步API为Promise,简化异步编程

把微信小程序异步API转化为Promise.用Promise处理异步操作有多方便,谁用谁知道. 微信官方没有给出Promise API来处理异步操作,而官方API异步的又非常多,这使得多异步编程会层层回调,代码一复杂,回调起来就想砸电脑. 于是写了一个通用工具,把微信官方的异步API转化为Promise,方便处理(多)异步操作. 你可以这样用: 准备转化后的方法并暴露出 // /utils/wx-promise.js import toPromise from '/module/to-promi

图解微信小程序---调用API操作步骤

图解微信小程序---调用API操作步骤 什么是API API(Application Programming Interface,应用程序编程接口:是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节. 通俗的讲API就是接口,就是通道,负责一个程序和其他软件的沟通,本质是预先定义的函数. API通常是以Http的形式提供,它隐藏的含义就是,只要你符合我定义的标准,你就可以来使用我. 注册账号 填写注册信息 登陆 管

微信小程序开发《三》:微信小程序请求不能使用session的原因及解决办法

本人在前面的微信小程序开发<二>中提到要想在服务端保持状态需要在客户端第一次请求服务器的时候给客户端返回一个sessionid,由客户端在本地保存,下次请求的时候在header里面带上这个sessionid,写到cookie字段里.但是最近发现请求时哪怕每次在header里带上sessionid还是不能拿到同一个session,百度后终于发现坑了(也不知道微信为啥要这么做),原来微信对wx.request这个API做了修改,小程序发起的请求并不是直接请求我们的后台服务器,而是先通过微信的服务器

restclient,微信小程序请求sessionID不一样导致取不到指定session的解决办法

restclient: header加上:"Cookie", "JSESSIONID=C1A34A2EC4C9423BB460E6F7005CA81E" 微信小程序: header加上:'Cookie':'session_id'   //本地存储的值(因为微信小程序不支持cookies 所以将session_id存入storage) 原文地址:https://www.cnblogs.com/handsomejunhong/p/8799041.html

微信小程序详解——页面之间的跳转方式【路由】和参数传递

微信小程序拥有web网页和Application共同的特征,我们的页面都不是孤立存在的,而是通过和其他页面进行交互,来共同完成系统的功能.今天我们来研究小程序页面之间的跳转方式. 1.先导 在Android中,我们Activity和Fragment都有栈的概念在里面,微信小程序页面也有栈的概念在里面.微信小程序页面跳转有四种方式: 1.wx.navigateTo(OBJECT): 2.wx.redirectTo(OBJECT): 3.wx.switchTab(OBJECT): 4.wx.navi

微信小程序背景音乐的播放以及问题的解决

微信小程序背景音乐的播放有自己自定义的api,并不推荐使用audio,audio加载时间长,体验不好,推荐使用wx.getBackgroundAudioManager() //定义背景音乐 const bgMusic = wx.getBackgroundAudioManager() //创建背景音乐 page({ data:{ src:' ' }, onLoad:function(){ this.ceshi() }, ceshi:function(){ //这里 需要从接口获得背景音乐的路劲,我

微信小程序web-view不支持打开非业务域名解决思路

问题起因: 我这的微信小程序小程序需要跳转到一个第三方的网站,然后就用web-view插件进行页面跳转,就会提示我出现非业务域名无法打开. 解决思路: 1.(不成功,安卓手机可以通过,iOS通过不了)通过微信公众平台的小程序开发文档发现在 设置-开发设置-业务域名中来设置业务域名,在这里我用的是自己域名和服务器(通过SSL证书的绑定)搭了一个静态网址作为平台进行跳转到第三方链接. 2.(成功)不去链接第三方网址,自己写了一个需求简易网站发布(域名需要绑定SSL证书) 注意:在这里我用的是Ngin