微信小程序服务端

更新时间:2023-03-01 03:12:27 阅读: 评论:0

微信小程序开发-服务端ssion值取不到;小程序res.header['Set-Cookie']隐藏的坑

问题:本地服务器存取ssion没有问题。通过小程序,比如发验证码,服务器端将验证码存为ssion。校验验证码的时候重新取ssion,提示ssion值不存在。

根源:微信小程序不能保存Cookie,导致每次wx.request到服务端都会创建一个新的会话,从而当前会话不再是之前存验证码的那个会话,自然也就取不到ssion值了。

解决方法:(由于本人很懒,直接参考、引用大神的文章,文末有原文链接,原文板块比较好看一点。我这里重点在于记录微信小程序的另一个坑。)

普通的Web开发,都是把ssionid保存在cookie中传递的。

不管是java还是php,服务端的会在respon的header中加上Set-Cookie

例如:

浏览器的请求也会在header中加上

例如:

通过这个ssionid就能使浏览器端和服务端保持会话,使浏览器端保持登录状态。但是,微信小程序不能保存Cookie,导致每次wx.request到服务端都会创建一个新的会话,小程序端就不能保持登录状态了。

一个比较简单的办法就是在小程序端把cookie保存到storage里,后续请求的时候再读storage,把cookie添加到请求头里,这样做的好处就是,服务端不用做任何改动

具体操作如下:

1.把服务端respon的Set-Cookie中的值保存到Storage中

2.wx.request再从Storage中取出Cookie,封装到header中

我在这里还遇到了另外一个问题,当服务器响应多个Set-Cookie时,小程序通过wx.request 回调取res.header['Set-Cookie']所取到的Set-Cookie值是把它们用逗号拼接在一起,从而产生的错误的Cookie,这样请求后台的时候还是取不到相应的ssion。而真正需要的是用分号拼接多个Set-Cookie值。例如:

服务器响应:

小程序通过res.header['Set-Cookie']取到的Set-Cookie值却是:

而真正正确的值应该是smallapp与ssion_name之间用分号隔开而不是逗号:

但坑终究是坑,寄人篱下,有坑也只得我们自己填。

填坑方法:在步骤2中的if判断中,自己重新拆分Storage中取出的Cookie,整理成后端需要的规范的cookie。再赋值给header.Cookie。

这个问题暂时没找到其他解决方案,也请知道的朋友指点一下。

原文引用: 微信小程序开发-保存服务端ssionid的方法

链接:https://www.jianshu.com/p/5c928e0df024

微信小程序-新用户获取微信手机号登录服务端获取不到unionid情况

微信小程序button api
https://developers.weixin.qq.com/miniprogram/dev/component/button.html

微信小程序 社区 unionid总结
https://developers.weixin.qq.com/community/develop/doc/000c2424654c40bd9c960e71e5b009

【情况1】若当前小程序未关联微信开放平台,则没有unionId
解决方案:登录 微信开放平台,绑定小程序。
【情况2】已经关联微信开放平台的小程序,但
(1)即没有关注过公众号,
(2)也没有登录过公众号,
(3)更没有使用微信登录的方式登录过app
则此时,微信接口服务端获取不到unionId
解决方案:通过小程序端的获取用户信息e.detail.rawData 解析到unionId 再传给服务端

微信小程序发布必须使用https吗

是的。

每个微信小程序需要事先设置通讯域名,小程序只可以跟指定的域名与进行网络通信。包括普通HTTPS请求(wx.request)、上传文件(wx.uploadFile)、下载文件(wx.downloadFile)和WebSocket通信(wx.connectSocket)。

根据小程序开发文档,域名只支持https(wx.request、wx.uploadFile、wx.downloadFile)和wss(wx.connectSocket)协议;

/iknow-pic.cdn.bcebos.com/3b292df5e0fe99254b35cf5c3ba85edf8db17185"target="_blank"title="点击查看大图"class="ikqb_img_alink">/iknow-pic.cdn.bcebos.com/3b292df5e0fe99254b35cf5c3ba85edf8db17185?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/3b292df5e0fe99254b35cf5c3ba85edf8db17185"/>

扩展资料:

HTTPS请求的相关SSL证书类型:

1、DVSSL证书(域名验证型):只验证域名所有权,适合个人网站、博客等站点使用;

2、IVSSL证书(个人验证型):验证网站所属个人身份,适合自媒体、个人品牌站点使用;

3、OVSSL证书(企业验证型):验证网站所属单位身份,适合企业级用户使用;

4、EVSSL证书(扩展验证型):扩展验证网站所属单位身份,适合高度信任的企业级用户使用。

5、域名要实现HTTPS加密请求,需要安装SSL证书。

参考资料来源:/developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html"target="_blank"title="只支持选中一个链接时生效">微信开放文档-网络


微信小程序 HTTPS 请求,如何获取免费证书配置服务器

为了保护用户数据安全,微信小程序在上线之初就强制要求小程序服务端必须使用HTTPS加密协议,通过HTTPS请求进行网络通信,不满足条件的域名和协议无法请求。HTTPS传输协议在HTTP的基础上加入了SSL/TLS协议,SSL/TLS协议具有身份验证、数据传输加密和数据完整性校验的功能。通过SSL/TLS协议建立HTTPS加密连接,对服务器与终端、服务器与服务器之间的传输数据进行加密,保护数据的机密性并验证数据的完整性;依靠SSL证书来验证服务器真实身份,确保数据传输到正确的通信方,防止虚假服务器钓鱼攻击,有效防止中间人攻击、流量劫持、数据篡改、钓鱼网站仿冒等安全问题。

微信小程序与第三方服务器通讯的域名必须满足以下条件:

1、一个已备案的域名,域名不能加端口;

2、域名必须配置SSL证书,也就是能通过https://访问;

3、HTTPS服务器必须支持TLS 1.2或以上版本;

4、微信小程序后台加上合法域名设置。

以上条件全部满足,小程序才能正常通讯,为满足更广泛的兼容性,建议按最高要求配置HTTPS加密。

选定证书类型

HTTPS证书即SSL证书,是HTTP明文协议升级HTTPS加密协议必备的数字证书。为客户端(浏览器)与服务端(网站服务器)之间搭建一条安全的加密通道,对两者之间交换的信息进行加密。

SSL证书分为:EV SSL证书、OV SSL证书以及DV SSL证书三种类型,以及部分证书支持通配符和多域名的功能。开发者可根据自身情况选择不同类型的证书。

DV SSL证书(域名验证型):只验证域名所有适合个人网站、博客等站点使用;

OV SSL证书(企业验证型):验证网站所属单位身份,适合于中旬性企业级用户使用;

EV SSL证书(扩展验证型):扩展验证网站所属单位身份,适合高度信任的企业级用户使用。如金融行业的银行,电子商务平台。


微信小程序之无需服务端支持实现内容安全检查

微信小程序审核未通过,原因如下:

一个平平无奇的小程序,在一次平平无奇的升级优化过程中,竟然审核未通过,很奇怪的是之前的升级过程中一直没有此问题!不过,出了问题总要解决的,好在未通过原因中给出了解决办法:“可以调用小程序内容安全API,或使用其他技术”。既然小程序提供了现成的API,那就撸TA……


首先在微信小程序开发文档中搜索关键词: 内容安全 ,可以发现微信还是很人性化的,提供了 云调用 的调用方式来进行违法违规检查,不需要服务端的支持,这样对前端的同学还是非常友好的。 内容安全文档地址


开通云开发请参考微信官方文档: 云开发 。

开通云开发,默认使用 基础版1 ,如无特殊业务要求,使用此版本即可,是免费的哦~

云开发要求创建环境,留意此处的环境ID,在小程序调用云函数的时候会用到。


在小程序项目目录下新建云函数目录 cloudfunctions ,并在 project.config.json 中注册该目录,注册后该目录会显示有云图标,如图所示:


在云函数根目录下新建云函数 msgSecCheck ,云函数新建成功后,会生成固定的目录结构,如图所示:

在云函数中调用内容安全检查的API,并对结果进行处理。


根据官方文档要求:

在云函数 msgSecCheck 目录下新建 config.json 文件,配置云调用权限,如图所示:


完成后的云函数如果不上传并部署的话,小程序是无法调用的,所以云函数有改动的话, 务必及时上传并部署


小程序调用云函数,此处的 env 的值就是上文中说到的环境ID, name 的值是新建的云函数的文件名。

至此,大功告成!


微信小程序要求HTTPS请求,如何选择SSL证书

大家都知道微信平台对小程序的上线要求之一就是必须部署SSL证书,那么对于不同类型的SSL证书,我们在开发商城小程序时该怎么选择呢?我们先来了解下的SSL证书不同类型及价格

 一、SSL证书不同类型及价格

1、DV SSL证书

即域名SSL证书,指只能用于验证一个或多个域名的所有权,仅能起到网站信息加密的作用。作为最简单的证书类型,10分钟左右就可完成域名验证和快速颁发证书,无需递交纸质文件,无需人工验证申请单位真实身份。价格根据域名数量在百元至千元不等,如果只是一个展示类小程序,花费一百左右就够了。

2、OV SSL证书

即组织验证型SSL证书(企业SSL证书),申请OV SSL证书需要验证企业真实信息,核实申请单位是一个真实合法的组织。一般CA机构会在人工核实后1-5个工作日签发证书,OV SSL证书价格一般在百元至几千元不等。

3、EV SSL证书

即扩展验证型SSL证书,EV SSL证书是目前安全等级最高的SSL证书,通过极其严格甚至苛刻审查网站企业身份和域名所有权,确保网站身份的真实可靠,是最值得信赖的 SSL 证书类型。一般颁发需要5-7个工作日,价格在百元至万元不等。

注:以上三种证书类型都支持单域名、多域名、通配符SSL证书,可以满足同时保护不同数量的小程序的需求。

二、商城小程序如何选择SSL证书类型

了解过SSL证书类型,如何选择就变的简单了。大家可以根据自己小程序的数量和定位去做选择,小木为大家做了以下总结:

1、根据数量:如果商家只拥有一个小程序,选择单域名的SSL证书类型即可。如果是同时拥有多家小程序,可以选择多域名和SSL通配符证书,具体类型选择参考第2点。

2、根据定义和功能:如果是个人或者展示类小程序,未开通支付功能,不重视数据/文件传输和保存等,那么选择DV SSL证书。如果是电商类商城类小程序,更重视支付安全和客户信息安全,建议视企业的规模和数据保密等级去选择保密性安全性更好OV SSL证书,或者选择目前安全等级最高的EV SSL证书。

以上就是关于SSL证书类型以及如何选择合适的SSL证书的内容介绍啦,大家根据自己的功能需求去选择即可。

本文发布于:2023-02-28 19:22:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/167761154760326.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:微信小程序服务端.doc

本文 PDF 下载地址:微信小程序服务端.pdf

标签:服务端   程序   微信小
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|