Maison > Article > Applet WeChat > L'applet WeChat prend en charge la mise en œuvre du code des cookies
Le contenu de cet article concerne l'implémentation du code de l'applet WeChat prenant en charge les cookies. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
weapp-cookie
Une ligne de code permet à l'applet WeChat de supporter les cookies, portail : github
Intro
L'interface de requête réseau native wx.request de WeChat ne prend pas en charge les cookies traditionnels, mais parfois notre interface back-end existante s'appuie sur les cookies (tels que le statut de connexion de l'utilisateur du serveur), cette bibliothèque peut être utilisé Une ligne de code implémente le mécanisme de cookies pour votre mini-programme afin de garantir que les sessions de service basées sur les cookies n'expireront pas. Le mécanisme de session est partagé avec le côté Web
Caractéristiques
.Une ligne de code permet au mini programme de prendre en charge les cookies
Vous pouvez utiliser l'API pour obtenir et définir des cookies
Portée du domaine/chemin de prise en charge
Installer
npm install weapp-cookie --save # 将 npm 包复制到 vendor 文件夹,避免小程序可能不能找到文件(tips:使用 wepy/mpvue 等框架无需此步) cp -rf ./node_modules/ ./vendor/
Utilisation
Introduit par une ligne de code dans app.js dans le répertoire racine du mini programme C'est-à-dire
// app.js import './vendor/weapp-cookie/index' // tips: 使用 wepy/mpvue 可以直接在入口 js 引入 weapp-cookie 模块 // import 'weapp-cookie' App({ onLaunch: function () { } // ... })
La méthode d'appel wx.request d'origine reste inchangée après l'introduction, weapp-cookie proxy automatiquement wx. demander l'accès à l'interface au niveau de la couche inférieure pour prendre en charge le stockage et l'envoi des cookies
// 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) */ } }) } })
Les opérations sur les cookies peuvent être appelées via l'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()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!