weapp-cookie:一行代码让微信、头条、百度、支付宝小程序支持 cookie,兼容 uni-app :cookie::r

  • L7_723186
    了解作者
  • 151.4KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-15 03:13
    上传日期
weapp-cookie 一行代码让微信、头条、百度、支付宝小程序支持 cookie,兼容 uni-app Intro 小程序原生的 request 网络请求接口并不支持传统的 Cookie,但有时候我们现有的后端接口确于依赖 Cookie(比如服务器用户登录态),这个库可用一行代码为你的小程序实现 Cookie 机制,以保证基于 cookie 的服务会话不会失效,与 web 端共用会话机制 Featrues 一行代码让小程序支持 cookie 可使用 api 获取、设置 cookie 支持 domain/path 作用域 Install npm install weapp-cookie --save # 将 npm 包复制到 vendor 文件夹,避免小程序可能不能找到文件(Tips:支持npm包的开发环境无需此步) cp -rf ./node_modules/ ./vendor/
weapp-cookie-master.zip
  • weapp-cookie-master
  • .gitignore
    884B
  • .babelrc
    160B
  • .eslintrc
    558B
  • package.json
    1.5KB
  • package-lock.json
    251.6KB
  • src
  • util.js
    767B
  • localStorage.js
    681B
  • index.js
    65B
  • CookieStore.js
    8.9KB
  • api.js
    595B
  • Cookie.js
    2.4KB
  • cookieShim.js
    3.7KB
  • gulpfile.js
    25B
  • assets
  • weapp-cookie.png
    31.5KB
  • build
  • build.js
    922B
  • rollup.config.js
    573B
  • dist
  • weapp-cookie.js
    70.2KB
  • weapp-cookie.js.map
    129.6KB
  • LICENSE
    1KB
  • index.js
    79B
  • README.md
    5.8KB
  • test
  • weapp-cookie.test.js
    3.1KB
内容介绍
# weapp-cookie > 一行代码让微信、头条、百度、支付宝小程序支持 cookie,兼容 uni-app ![weapp-cookie](./assets/weapp-cookie.png) # Intro 小程序原生的 request 网络请求接口并不支持传统的 Cookie,但有时候我们现有的后端接口确于依赖 Cookie(比如服务器用户登录态),这个库可用一行代码为你的小程序实现 Cookie 机制,以保证基于 cookie 的服务会话不会失效,与 web 端共用会话机制 # Featrues - [x] 一行代码让小程序支持 cookie - [x] 可使用 api 获取、设置 cookie - [x] 支持 domain/path 作用域 # Install ``` sh npm install weapp-cookie --save # 将 npm 包复制到 vendor 文件夹,避免小程序可能不能找到文件(Tips:支持npm包的开发环境无需此步) cp -rf ./node_modules/ ./vendor/ ``` # Usage 以微信小程序为例,在小程序根目录的 app.js 一行代码引入即可 ``` js // app.js import './vendor/weapp-cookie/dist/weapp-cookie' // tips: 使用 uni-app/wepy/mpvue 等支持npm包的环境可以直接在入口 js 引入 weapp-cookie 模块 // import 'weapp-cookie' App({ onLaunch: function () { } // ... }) ``` 原来的 wx.request 调用方式保持不变,引入后 weapp-cookie 会在底层自动代理 wx.request 的接口访问,以支持 cookie 存储和发送 ``` js // 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 调用 ``` js 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 ``` 使用和配置别名:由于微信小程序的安全机制,[在小程序插件环境下 wx.request 不允许被重写](https://developers.weixin.qq.com/community/develop/doc/000cc0f0c70250ea51e6faa6156400),所以需使用内置别名或自定义别名来支持 cookie 请求 ``` import cookies from 'weapp-cookie' // 使用内置别名 wx.requestWithCookie({ url: 'https://example.com/user/current', success: function (res) { console.log(res) } }) // 配置自定义别名 cookies.config({ requestAlias: 'requestx' }) // 使用自定义别名 wx.requestx({ url: 'https://example.com/user/current', success: function (res) { console.log(res) } }) ``` # Api ## CookieStore ``` js 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 ``` js 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() ``` ![star](https://user-gold-cdn.xitu.io/2018/7/24/164ca9c0e943dcd7?w=240&h=240&f=png&s=41877) 如果对你有用,欢迎 star ^_^
评论
    相关推荐
    • mornya-react-npm-template:React组件项目模板以上传NPM注册表
      mornya-react-npm-template React组件项目模板以上传NPM注册表。 基于 ,该自定义了 (React/ redux样板)脚本。 初始化 安装依赖项 npm i 建造 建立你的项目 npm run bundle (NOT " npm run build " ) 发布 发布...
    • 千兆服务器
      GIGI认字服务端 安装 $ npm install 运行应用 # development $ npm run d # production mode $ npm run start:prod API文件 执照 Nest已。
    • 节点服务器
      Rest Server Usando节点 扩展服务器节点 残障 npm install
    • meteor-image-saver:使用 npm 请求将图像从 url 保存到服务器
      使用 npm将图像从 url 保存到服务器 安装 meteor add taehee:image-saver ##用法 ImageSaver.download origin, destination, -> console.log 'callback' 例子 ImageSaver.download imageUrl, process.env.PWD+'/...
    • 引擎盖服务器
      用于为引擎盖组件创建iframe的服务器 构建设置 # install dependencies $ npm run install # serve with hot reload at localhost:3000 $ npm run dev # build for production and launch server $ npm run build $...
    • 休息服务器基础
      #网络服务器 Ejecutar npm install para reconruir los modulos de node
    • npm-modules-talk:谈谈npm模块
      npm-modules-talk 对于美国运通组织见面会2018-05-24 。 通过大完成演示 开始演讲 npm run start 此命令将启动演示服务器,并观看演示文件夹中的index.md文件。
    • GMR服务器
      服务器 金山跑步者API 关于 该项目使用 。 一个用于构建现代实时应用程序的开源Web框架。 入门 启动和运行就像1、2、3一样简单。 确保已安装和 。 安装你的依赖 cd path/to/server npm install 启动你的应用 npm ...
    • 服务器
      服务器 剧本 启动应用程序npm start 为应用程序npm run dev启动nodemon 运行测试npm test