Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >微信小程序 设置cookie-保持会话持久-免登录

微信小程序 设置cookie-保持会话持久-免登录

作者头像
yechaoa
发布于 2022-06-10 05:10:15
发布于 2022-06-10 05:10:15
6K10
代码可运行
举报
文章被收录于专栏:移动开发专栏移动开发专栏
运行总次数:0
代码可运行

设置cookie是比较常见的配置,cookie持久化以保证免登录、保持会话等等。

方式一(自定义式)

  • 1.在app.js中定义一个全局变量 cookie: "",名称随意
  • 2.请求接口,比如登录,后台在请求头中获取jsessionId,然后返回给前台。(亦或是json中的某个字段,比如token
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String sessionId=request.getsession().getid()
  • 3.前台在请求的回调中给全局的参数cookie赋值
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 app.globalData.cookie= 'JSESSIONID=' + res.info
  • 4.然后在请求request的header中添加cookie参数即可
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 header: {
      ....,
      'cookie': getApp().globalData.cookie
 },

非常简单粗暴。

方式二(常规方式)

常规方式呢,就是后台把数据放在响应头里,即Response Header,这个里面会有我们需要持久化的信息,即Set-Cookie字段。 当然也可能是在header平级的cookies字段里,视情况而定。

Set-Cookie为例,其实思想与方式一是一样的,只不过取值方式有点差别而已。

  • 1.取值并存储
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
         if (res.statusCode == 200) {
            if (res.header['Set-Cookie'] != '') {
               wx.setStorageSync('Set-Cookie', res.header['Set-Cookie'])
            }
            ...
         }
  • 2.配置请求头
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
      header: {
         'content-type': 'application/x-www-form-urlencoded',
         'cookie': wx.getStorageSync('Set-Cookie')
      },

清除cookie

  • 方式一的清除 因为是定义的变量存储,直接把变量值置空就可以了
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	app.globalData.cookie = ' '
  • 方式二的清除 其实方式二也涉及到存储的知识点了,即有set、get,那也有remove,在需要的地方调用即可
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	wx.removeStorageSync('Set-Cookie')
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
如果多个 Set-Cookie 怎么获取呢?
如果多个 Set-Cookie 怎么获取呢?
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
微信小程序和Django服务端通信
我在这里详细表述一遍:微信小程序和具有权限认证、CSRF机制的Django服务端通信的一个可行的例子。。
benny
2020/04/23
1.6K0
小程序开发总结03 - 数据传递与缓存
和H5不同,元素上绑定事件只能传入事件名,不能直接传参,需用通过dataset传参
CS逍遥剑仙
2018/06/23
1.3K0
小程序开发总结03 - 数据传递与缓存
微信小程序登录对接Django后端实现J
1.使用微信小程序登录和获取用户信息Api接口 2.把Api获取的用户资料和code发送给django后端 3.通过微信接口把code换取成openid 4.后端将openid作为用户名和密码 5.后端通过JSON web token方式登录,把token和用户id传回小程序 6.小程序将token和用户id保存在storage中 下次请求需要验证用户身份的页面时,在header中加入token这个字段
py3study
2020/01/16
6.9K1
Django实战-小程序端cookie保存至storage
Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
小团子
2019/09/03
1.1K0
Django实战-小程序端cookie保存至storage
小程序---微信本地存储的方法使用
需要存储的内容。只支持原生类型、Date、及能够通过JSON.stringify序列化的对象。
半指温柔乐
2019/06/03
2.5K0
微信小程序带cookie的request请求代码封装
写一个工具函数,直接导入使用即可,接口同 wx.request 。会自动设置和更新 cookie。
渔父歌
2018/12/26
2.7K0
解决微信小程序无法建立持久化连接的两种方案
因为最近在做一个小程序的项目,在建立前后端连接的过程中,发现了一个非常让人奇怪的现象:本身小程序是通过调用wx.https()方法来发起http请求的,但是你会发现,如果你在后端将值保存到了request或者session中,这个值你再次调用的时候就不见了!取值的时候会出现NullPointerException,或者你在使用了Spring Security、Shiro这样的权限校验框架以后,会发现登录后出现了权限丢失的问题。 这到底是为什么呢?根据我的经验,我怀疑是session发生了变化,为了证明这一点,我通过观察两次请求的session是否为同一个得到了最终的结论。 小程序发起请求的代码是这样的:
roobtyan
2019/02/21
1.6K0
解决微信小程序无法建立持久化连接的两种方案
小程序的缓存策略与优化
小程序的性能与用户体验息息相关,而缓存是提升小程序性能的有效手段之一。合理的缓存策略能够显著降低网络请求的频率,减少数据加载时间,从而提高页面响应速度和用户体验。小程序的缓存不仅仅是为了减少网络请求,还可以帮助提高系统的稳定性和流畅度。
LucianaiB
2025/01/28
1600
微信小程序接口请求token过期用户无感应获取token重新调用接口
封装接口请求,我们的业务需要在header上加token和openid,可以根据自己的业务逻辑进行项目改变。 const baseUrl = "xxx"; const http = ({ url = '', param = {}, type = 'json', callback = '', ...other } = {}) => { wx.showLoading({ title:'请求中...', }) let timeStart = Date.now();
安德玛
2022/03/08
2K0
微信小程序8种数据通信的方式
数据通信在开发中是必不可少的一个环节,也是我们必须掌握的知识。知道得越多的数据通信方式,实现业务会更加得心应手。
WahFung
2020/08/24
1.1K0
【零基础微信小程序入门开发六】基础能力(二)
同【服务器域名】配置一样在小程序界面配置即可,不过他是作为嵌入的、承载网页的容器。会自动铺满整个小程序页面,小游戏和个人类型的小程序暂不支持使用,我们可以在调试机上看一下效果,它的用法很简单
德宏大魔王
2023/08/08
2380
【零基础微信小程序入门开发六】基础能力(二)
微信小程序用户登录流程
后端接口是一位老师的 都已经写好了 app.js const TOKEN = 'token'; App({ //全局数据,其他页面可通过getApp().globalData获取数据 globalData: { token: '' }, //监听小程序初始化 onLaunch: function() { //从缓存中取出token const token = wx.getStorageSync(TOKEN); //判断token是否有值 if(
peng_tianyu
2022/12/15
2K0
【微信小程序+Python后台从0到1实战开发】03微信小程序登录注册功能开发
注意:修改globalData之后,其他页面以用的值不会自动变化,而是需要手动设置。
天道Vax的时间宝藏
2021/08/11
1.4K1
微信小程序----手势图案锁屏
参考 H5lock 效果图 WXML <view class="container"> <view class="reset" bindtap="resetPwd">重置密码</view>
Rattenking
2021/02/01
1.2K0
微信小程序----手势图案锁屏
微信小程序登陆封装(自用版)欢迎指正
https://static.4ce.cn/gh/uxiaohan/GitImgTypecho@master/usr/uploads/2022/07/2623010086.mp4
骤雨重山
2022/06/27
8260
京东购物小程序cookie方案实践(附Demo)
微信小程序没有像浏览器一样内置实现了 cookie 方案,需要开发者自行模拟,而原先京东购物小程序及京喜小程序(现微信一级购物入口)是从微信及手 Q 购物入口 H5 中迁移迭代出来的,也就是说我们不仅要在小程序中模拟一套 cookie 方案,并且要保持和原业务对 cookie 处理逻辑的一致,为此我们将实现方向确定为“基于小程序开放能力,和浏览器保持一致”。
WecTeam
2020/01/14
3.2K0
京东购物小程序cookie方案实践(附Demo)
小程序同步异步
最近一段时间写微信小程序大家或许注意到了有些时候在登录的时候莫名其妙的报错了,然后就开始一路找bug之路,每次console.log都没问题都有数据啊,但是就是报错,这时候用断点调试法发现,上一步的函数体还没有执行完毕呢,下一个函数就开始执行了,但是呢下一步的函数还必须需要上一步返回的参数不可,百度了一下才知道那是因为微信小程序是异步执行的,两个函数同时执行谁也不等谁,这里如果有兄弟不明白同步和异步的话可以百度一下就知道了,这时候必须要使用javascript的函数Promise,但是呢微信小程序增加ES6的promise特性支,微信小程序新版本中移除了promise的支持,需要自己使用第三方库来自行实现ES6的promise特性,网上有第三方自己造的轮子,但是我用了以后我就后悔了,真的是一脸懵懂啊,想了想算了,快算了自己想个办法吧
江一铭
2022/06/16
6380
[猫头虎分享21天微信小程序基础入门教程] 第14天:小程序的数据存储与本地缓存
大家好,我是猫头虎,一名全栈软件工程师。今天我们继续微信小程序的学习,重点了解如何在小程序中进行数据存储与本地缓存。这些内容可以帮助你在用户设备上存储数据,提高小程序的性能和用户体验。🚀
猫头虎
2024/05/28
8620
TensorFlow.js 微信小程序插件开始支持模型缓存
通常情况下,微信小程序追求的是短小精悍,即开即用,用完即走,适用于一些简单的应用场景。然而,随着微信小程序开放能力的提高,人们发现用微信小程序可以实现越来越多的功能,小程序也越来越复杂,越来越庞大起来。这个可以从小程序的大小限制的变化看出,最开始小程序的大小限制为1M,后来限制为2M,最新微信又给小程序提供了分包加载机制,开发者将小程序划分成不同的子包,用户在使用时按需进行加载,所有分包大小限制提高到8M。
云水木石
2020/02/18
1.5K0
探索微信小程序的奇妙世界:从入门到进阶
https://cloud.tencent.com/developer/article/2465647?shareByChannel=link
忆愿
2024/12/01
2450
探索微信小程序的奇妙世界:从入门到进阶
推荐阅读
相关推荐
微信小程序和Django服务端通信
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档