微信小程序支持 cookie的代码实现
来源:不言
发布时间:2018-10-10 16:12:22
阅读量:1125
本篇文章给大家带来的内容是关于微信小程序支持 cookie的代码实现,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
weapp-cookie
一行代码让微信小程序支持 cookie,传送门:github
Intro
微信原生的 wx.request 网络请求接口并不支持传统的 Cookie,但有时候我们现有的后端接口确于依赖 Cookie(比如服务器用户登录态),这个库可用一行代码为你的小程序实现 Cookie 机制,以保证基于 cookie 的服务会话不会失效,与 web 端共用会话机制
Featrues
一行代码让小程序支持 cookie
可使用 api 获取、设置 cookie
支持 domain/path 作用域
Install
1 2 3 4 | npm install weapp-cookie --save
# 将 npm 包复制到 vendor 文件夹,避免小程序可能不能找到文件(tips:使用 wepy/mpvue 等框架无需此步)
cp -rf ./node_modules/ ./vendor/
|
Usage
在小程序根目录的 app.js 一行代码引入即可
1 2 3 4 5 6 7 8 9 10 | import './vendor/weapp-cookie/index'
App({
onLaunch: function () { }
})
|
原来的 wx.request 调用方式保持不变,引入后 weapp-cookie 会在底层自动代理 wx.request 的接口访问,以支持 cookie 存储和发送
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Page({
onLoad: function () {
wx.request({
url: 'https://example.com/login' ,
data: {
username: 'admin' ,
password: '123456'
},
success: function (res) {
}
})
}
})
|
cookie 操作可通过 api 调用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import cookies from 'weapp-cookie'
let token = cookies.get( 'csrf_token' , 'example.com' )
let cookie = cookies.set( 'uid' , 100, { domain: 'example.com' })
let isRemoved = cookies.remove( 'uid' , 'example.com' )
let hasToken = cookies.has( 'uid' , 'example.com' )
|
Api
CookieStore
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | import cookies from 'weapp-cookie'
cookies.get(String name, String domain)
cookies.set(String name, String value, Object options)
cookies.has(String name, String domain)
cookies.remove(String name, String domain)
cookies.getCookie(String name, String domain)
cookies.getCookies(String domain)
cookies.clearCookies (domain)
cookies.dir(domain)
|
Cookie
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import cookies from 'weapp-cookie'
let cookie = cookies.getCookie( 'uuid' , 'example.com' )
cookie.name: String
cookie.value: String
cookie.domain: String
cookie.path: String
cookie.expires: Date
cookie.maxAge: Number
cookie.httpOnly: Boolean
cookie.isExpired()
cookie.isPersistence()
|