词条信息

admin
admin
超级管理员
词条创建者 发短消息   

相关词条

热门词条

更多>>
什么是端口?到底是做什么的呢?
端口一般指两种,一种是硬件比如路由器或者交换机的插网线的端口,一种是软件的逻辑的概念,比如http的80端口!...
7种进阶方法让你快速测试端口连通性
Ping是Windows、Linux和Unix系统下的一个检查网络连通性的命令工具,对于大部分互联网用户来说很...
电脑开机,总需要按F1,是什么原因造成的?
一.主板掉电这个说法是行业内的叫法了,一般是主板的CMOS电池没电了导致的。也是最常见的一种提示你按F1的提示...
社保降费对个人有什么影响?
下调城镇职工基本养老保险单位缴费比例是政府给企业发的一个大红包,特别是对于企业来说是一个利好,但是对个人来说有...
车辆“出险”对下年保费的影响,到底有多大?
【出险对交强险的影响】【出险对商业险的影响】车辆“出险”对下年保费的影响,到底有多大?这里有必要先提下车险第三...

精选图集

更多>>
简易百科旧版 >>所属分类 >> 微信小程序   

微信小程序支持 cookie的代码实现

标签: 微信小程序 cookie 代码

顶[0] 发表评论(0) 编辑词条

本篇文章给大家带来的内容是关于微信小程序支持 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()


以上就是微信小程序支持 cookie的代码实现的详细内容.

 

 

附件列表


按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

→我们致力于为广大网民解决所遇到的各种电脑技术问题
 如果您认为本词条还有待完善,请 编辑词条

上一篇微信小程序验证码源码
下一篇小程序中常用的语法

0
1. 本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
2. 本站内容仅供参考,如果您需要解决具体问题,建议您咨询相关领域专业人士。
3. 如果您没有找到需要的百科词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>