導讀微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一... 微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。 本篇文章給大家帶來的內容是關于微信小程序支持 cookie的代碼實現,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。weapp-cookie 一行代碼讓微信小程序支持 cookie,傳送門:github Intro 微信原生的 wx.request 網絡請求接口并不支持傳統的 Cookie,但有時候我們現有的后端接口確于依賴 Cookie(比如服務器用戶登錄態),這個庫可用一行代碼為你的小程序實現 Cookie 機制,以保證基于 cookie 的服務會話不會失效,與 web 端共用會話機制 Featrues
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的代碼實現的詳細內容,更多請關注php中文網其它相關文章! 小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。 |
溫馨提示:喜歡本站的話,請收藏一下本站!