이 기사의 내용은 쿠키를 지원하는 WeChat 애플릿의 코드 구현에 관한 것입니다. 필요한 친구가 참고할 수 있기를 바랍니다.
weapp-cookie
한 줄의 코드를 사용하면 WeChat 애플릿이 쿠키를 지원할 수 있습니다. 포털: github
Intro
WeChat의 기본 wx.request 네트워크 요청 인터페이스는 기존 쿠키를 지원하지 않지만 때로는 기존 쿠키를 지원하지 않습니다. 백엔드 인터페이스는 쿠키(예: 서버 사용자 로그인 상태)에 의존합니다. 이 라이브러리는 쿠키 기반 서비스 세션이 만료되지 않고 세션 메커니즘을 공유하도록 보장하기 위해 한 줄의 코드를 사용하여 미니 프로그램에 대한 쿠키 메커니즘을 구현할 수 있습니다.
Featrues
한 줄의 코드로 애플릿이 쿠키를 지원할 수 있습니다.
API를 사용하여 쿠키를 가져오고 설정할 수 있습니다
도메인/경로 범위 지원
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 호출 방식은 도입 후 자동으로 변경되지 않습니다. 쿠키를 지원하기 위한 하위 레이어의 프록시 wx.request 인터페이스 액세스
// 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) */ } }) } })
쿠키 작업은 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()를 통해 호출할 수 있습니다.
위 내용은 WeChat 애플릿은 쿠키 코드 구현을 지원합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!