本篇文章给大家带来的内容是关于微信小程序支持 cookie的代码实现,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
weapp-cookie
一行代码让微信小程序支持 cookie,传送门:github
Intro
微信原生的 wx.request 网络请求接口并不支持传统的 Cookie,但有时候我们现有的后端接口确于依赖 Cookie(比如服务器用户登录态),这个库可用一行代码为你的小程序实现 Cookie 机制,以保证基于 cookie 的服务会话不会失效,与 web 端共用会话机制
Featrues
一行代码让小程序支持 cookie
可使用 api 获取、设置 cookie
支持 domain/path 作用域
Install
npm install weapp-cookie --save # 将 npm 包复制到 vendor 文件夹,避免小程序可能不能找到文件(tips:使用 wepy/mpvue 等框架无需此步) cp -rf ./node_modules/ ./vendor/
登录后复制
Usage
在小程序根目录的 app.js 一行代码引入即可
// app.js
import './vendor/weapp-cookie/index'
// tips: 使用 wepy/mpvue 可以直接在入口 js 引入 weapp-cookie 模块
// import 'weapp-cookie'
App({
onLaunch: function () { }
// ...
})登录后复制
原来的 wx.request 调用方式保持不变,引入后 weapp-cookie 会在底层自动代理 wx.request 的接口访问,以支持 cookie 存储和发送
// pages/home/index.js
Page({
onLoad: function () {
wx.request({
url: 'https://example.com/login',
data: {
username: 'admin',
password: '123456'
},
success: function (res) {
/*
* 接口调用成功后 weapp-cookie 会自动保存后端发送的所有Cookie(比如:SessionID)
* 并在后续的所有请求中带上,以保证基于 cookie 的服务器会话机制不会失效,
* 实现与 web 端共用会话机制(无需再手动维护 3rd_session_key)
*/
}
})
}
})登录后复制
cookie 操作可通过 api 调用
import cookies from 'weapp-cookie'
// 获取 cookie
let token = cookies.get('csrf_token', 'example.com')
// 设置 cookie
let cookie = cookies.set('uid', 100, { domain: 'example.com' })
// 删除 cookie
let isRemoved = cookies.remove('uid', 'example.com')
// 判断是否存在 cookie
let hasToken = cookies.has('uid', 'example.com')
// ... 详情请参考 Api登录后复制
Api
CookieStore
import cookies from 'weapp-cookie'
/**
* 获取 cookie 值
* @param {String} name cookie 名称
* @param {String} [domain] 指定域名(可选)
* @return {String} cookie 值
*/
cookies.get(String name, String domain)
/**
* 设置 cookie
* @param {String} name cookie 名称
* @param {String} value cookie 值
* @param {Object} options cookie 选项
* @param {String} options.domain 设置域名
* @param {String} [options.path]
* @param {Date} [options.expires]
* @param {Number} [options.maxAge]
* @param {Boolean} [options.httpOnly]
* @return {Cookie} cookie 对象
*/
cookies.set(String name, String value, Object options)
/**
* 是否存在某个 cookie
* @param {String} name cookie 名称
* @param {String} [domain] 指定域名(可选,不指定则任意域名包含名称为 name 的 cokkie 即为存在)
* @return {Boolean} 是否存在
*/
cookies.has(String name, String domain)
/**
* 删除 cookie
* @param {Array} name cookie 键
* @param {String} [domain] 指定域名(可选,不指定则删除所有域名中名称为 name 的 cookie)
* @return {Boolean} 是否删除成功
*/
cookies.remove(String name, String domain)
/**
* 获取 cookie 对象
* @param {String} name cookie 名称
* @param {String} [domain] 指定域名(可选)
* @return {Cookie} cookie 对象
*/
cookies.getCookie(String name, String domain)
/**
* 获取 cookies JSON对象
* @param {String} [domain] 指定域名(可选,不指定则获取包含所有域名的 cookie 值对象)
* @return {Object} cookie JSON对象
*/
cookies.getCookies(String domain)
/**
* 清除 cookie
* @param {String} [domain] 指定域名(可选,不指定则清除所有域名 cookie)
* @return {Boolean} 是否清除成功
*/
cookies.clearCookies (domain)
/**
* 获取所有存储的域名和 cookies 结构
* @return {Object} obj 结构JSON对象
*/
cookies.dir(domain)登录后复制
Cookie
import cookies from 'weapp-cookie'
// 获取 cookie 对象
let cookie = cookies.getCookie('uuid', 'example.com')
// ===== cookie 属性 =====
cookie.name: String
cookie.value: String
cookie.domain: String
cookie.path: String
cookie.expires: Date
cookie.maxAge: Number
cookie.httpOnly: Boolean
// ===== cookie 方法 =====
/**
* 验证 cookie 是否过期
* @return {Boolean} 是否过期
*/
cookie.isExpired()
/**
* 验证 cookie 是否可持久化
* @return {Boolean} 是否可持久化
*/
cookie.isPersistence()登录后复制
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!
相关教程推荐
- 微信引用功能什么意思
- 微信小程序与app的区别
- 微信小程序是什么
- 小程序中生命周期的解析(附代码)
- 微信小程序实例:如何实现批量倒计时(附代码)
- 小程序中页面布局和绝对定位以及按钮代码
- 系统—微信小程序中利用短信验证码login实现流程及代码详解
- 学习小程序开始开发及基本配置
- 小程序之页面用九宫格及item跳转的功能实现
- 关于微信小程序中弹框和模态框的实现
- H5小程序开发
- 小程序开发要用到哪些技术
- 小程序开发新手常问问题
- 小程序开发的40个技术窍门
- 七种微信小程序开发中频繁出现的错误及解决方案
- 微信小程序开发有哪些常见问题?
- 微信小程序开发中的常见问题与解决方案
其他课程推荐
- SEO之大量的长尾关键字如何管理
- 哪些技巧可以有效的增加网站外链
- META标签指南:哪些meta标签该用哪些不该用?
- 什么因素会造成排名波动
- 为什么网站的收录不稳定,有哪些原因?
- 网站长尾关键词如何正确布局
- 关键词排名下降的原因及解决办法
- 什么是网站的URL标准化
- 如何选择核心关键词
- 网站出现死链接怎么办?如何解决?
- 如何快速提升网站权重
- 影响网站收录的原因有哪些
- 网站首页排名全无怎么回事?如何解决?
- 应聘SEO工作需要注意什么?
- SEO网站跳出率高,你是怎么运营的?
- .edu顶级网址的权重会比较高吗?
- 网站修改标签一定会降权吗?
- 为什么网站排名越优化越不稳定越往下掉?
- 已经收录的文章可以修改吗
- 如何交换网站友情链接