18842388900

网站建设 APP开发 小程序

Article/文章

记录成长点滴 分享您我感悟

您当前位置>首页 > 知识 > 软件开发

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

发表时间:2019-05-20 08:50:32

文章来源:沈阳网站建设

标签:javascript cookie 小程序

分享:

浏览次数:0

本篇文章给大家带来的内容是关于微信小程序支持 cookie的代码实现,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

weapp-cookie

一行代码让微信小程序支持 cookie,传送门:github

Intro

微信原生的 wx.request 网络请求接口并不支持传统的 Cookie,但有时候我们现有的后端接口确于依赖 Cookie(比如服务器用户登录态),这个库沈阳小程序制作

<a href=http://www.sywzjs.com target=_blank class=infotextkey>沈阳<a href=http://www.sywzjs.com target=_blank class=infotextkey>软件开发</a></a>,<a href=http://www.sywzjs.com target=_blank class=infotextkey>沈阳<a href=http://www.sywzjs.com target=_blank class=infotextkey>软件公司</a></a>

可用一行代码为你的小程序实现 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.jsimport './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.jsPage({    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'// 获取 cookielet token = cookies.get('csrf_token', 'example.com')// 设置 cookielet cookie = cookies.set('uid', 100, { domain: 'example.com' })// 删除 cookielet isRemoved = cookies.remove('uid', 'example.com')// 判断是否存在 cookielet 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)              
                  

    javascript,cookie,小程序

相关案例查看更多