學(xué)習(xí)小程序——wafer2-client-sdk(vendor)

關(guān)鍵詞

小程序 抬虽、wafer2-client-sdk、vendor刑峡、小程序登錄會話洋闽、Session玄柠、帶登錄態(tài)的請求

摘要

由于項目開發(fā)需要,涉及到 小程序诫舅,本文以學(xué)習(xí)過程為線索羽利,進行記錄。

目錄

一刊懈、Session(會話控制)概述
二这弧、小程序登錄
—— 1、微信臨時登錄接口 wx.login(OBJECT)
—— 2虚汛、會話校驗 wx.checkSession(OBJECT)
三匾浪、wafer2-client-sdk(vendor)
—— 1、整體分析
—— 2卷哩、login
—— 3蛋辈、request

正文

一、Session(會話控制)概述

  • Session 直接翻譯成中文的意思為會話殉疼,但一般都譯成時域梯浪。在計算機專業(yè)術(shù)語中,Session 是指一個終端用戶與交互系統(tǒng)進行通信的時間間隔瓢娜,通常指從注冊進入系統(tǒng)到注銷退出系統(tǒng)之間所經(jīng)過的時間挂洛。其本來的含義是指有始有終的一系列動作/消息,比如打電話時從拿起電話撥號到掛斷電話這中間的一系列過程可以稱之為一個 session眠砾。

  • 作用:HTTP 協(xié)議本身是無狀態(tài)的虏劲,這與 HTTP 協(xié)議本來的目的是相符的,客戶端只需要簡單的向服務(wù)器請求下載某些文件褒颈,無論是客戶端還是服務(wù)器都沒有必要紀錄彼此過去的行為柒巫,每一次請求之間都是獨立的,好比一個顧客和一個自動售貨機或者一個普通的(非會員制)大賣場之間的關(guān)系一樣谷丸。 Session 一般用于保持會話狀態(tài)的基于 Web [服務(wù)器]的方法堡掏。Session 允許通過將對象存儲在 Web 服務(wù)器的內(nèi)存中在整個用戶會話過程中保持任何對象。

  • 關(guān)鍵點:保持會話狀態(tài)刨疼,時效性

  • 更詳細的可閱讀: Session 機制詳解

二泉唁、小程序登錄

1、微信臨時登錄接口 wx.login(OBJECT)
a. 接口定義
OBJECT 參數(shù)說明
參數(shù)名 類型 必填 說明 最低版本
timeout Number 超時時間揩慕,單位 ms 1.9.90
success Function 接口調(diào)用成功的回調(diào)函數(shù)
fail Function 接口調(diào)用失敗的回調(diào)函數(shù)
complete Function 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功亭畜、失敗都會執(zhí)行)
success 返回參數(shù)說明
參數(shù)名 類型 說明
errMsg String 調(diào)用結(jié)果
code String 用戶登錄憑證(有效期五分鐘)。開發(fā)者需要在開發(fā)者服務(wù)器后臺調(diào)用 api迎卤,使用 code換取 openid 和 session_key 等信息
b. 登錄過程
  • 通過調(diào)用該接口 wx.login(OBJECT)拴鸵,獲取用戶登錄憑證 code(有效期五分鐘);
  • 使用 code, 請求項目的小程序服務(wù)器;
  • 項目的小程序服務(wù)器會使用 code劲藐,appid, appsecret 訪問微信小程序接口八堡,獲取以下信息:
    微信用戶唯一標識 openid,
    會話密鑰 session_key
  • 返回 會話密鑰 session_key 到小程序客戶端聘芜,完成登錄秕重。
  • 登錄完成后,將session_key保存至本地厉膀,通過wx.getUserInfo( )獲取用戶信息(昵稱,頭像等)
2二拐、會話校驗 wx.checkSession(OBJECT)
a. 接口定義:校驗用戶當(dāng)前session_key是否有效服鹅。
OBJECT參數(shù)說明:
參數(shù)名 類型 必填 說明
success Function 接口調(diào)用成功的回調(diào)函數(shù),session_key未過期
fail Function 接口調(diào)用失敗的回調(diào)函數(shù)百新,session_key已過期
complete Function 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功企软、失敗都會執(zhí)行)
b. 會話密鑰(session_keyd)的有效性

開發(fā)時,如果遇到因為session_key不正確而校驗簽名失敗或解密失敗饭望,請關(guān)注下面幾個與session_key有關(guān)的注意事項仗哨。

重新登錄后session_key 失效
  • 每次調(diào)用wx.login()時,用戶的session_key會被更新铅辞,使舊的session_key失效厌漂。所以在每次調(diào)用wx.login()前,需通過wx.checkSession(OBJECT)接口校驗是否需要重新登錄斟珊,從而避免小程序反復(fù)執(zhí)行登錄流程苇倡。
超過有效期session_key 失效
  • 微信后臺不會把session_key的有效期告知開發(fā)者。微信后臺會根據(jù)用戶使用小程序的行為對session_key進行續(xù)期囤踩。用戶使用小程序越頻繁旨椒,session_key有效期越長。

  • 當(dāng)開發(fā)者在實現(xiàn)自定義登錄態(tài)時堵漱,可以考慮以session_key有效期作為自身登錄態(tài)有效期综慎,也可以實現(xiàn)自定義的時效性策略。

三勤庐、wafer2-client-sdk(vendor)

1示惊、sdk文件分析
image.png
2、login.js解析

請對照源碼閱讀

 * 進行服務(wù)器登錄埃元,以獲得登錄會話
 * 
 *  ->Session.get() 獲取用戶信息 session.userInfo
 *  ---> 無用戶信息 ----------------------------》doLogin()
 *  ---> 有用戶信息 wx.checkSession()
 *  ------->success 未過期--------------------------------------------------------》options.success(userInfo)(session.userInfo)
 *  ------->fail 已過期 doLogin()
 *  ---------->getWxLoginResult()
 *  --------------->wx.login() 登錄
 *  --------------------> fail --------------------------------------------------》options.fail(LoginError)
 *  --------------------> success 
 *  ------------------------> 得到用戶登錄憑證 code
 *  ------------------------> wx.getUserInfo() 獲取用戶信息
 *  ----------------------------> fail-------------------------------------------》options.fail(LoginError)
 *  ----------------------------> success wx.getUserInfo() 
 *  -------------------------------->fail----------------------------------------》options.fail(LoginError)
 *  -------------------------------->success userResult{頭像iv涝涤,用戶信息userInfo,加密數(shù)據(jù)encryptedData}
 *  ----------------------------------->wx.request() //請求服務(wù)器登錄地址岛杀,獲得會話信息session
 *  -------------------------------------->url: options.loginUrl
 *  -------------------------------------->method: options.method
 *  -------------------------------------->data: options.data
 *  -------------------------------------->header: {code, encryptedData, data}
 *  -------------------------------------->fail-----------------------------------》options.fail(LoginError)
 *  -------------------------------------->success res
 *  ------------------------------------------>Session.set(res.skey) 保存session
 * ------------------------------------------->options.success(userInfo)
3阔拳、request.js

待續(xù)

注:本文是通過搜集網(wǎng)絡(luò)資源,項目實踐后,整合撰寫糊肠,轉(zhuǎn)載請備注出處辨宠。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市货裹,隨后出現(xiàn)的幾起案子嗤形,更是在濱河造成了極大的恐慌,老刑警劉巖弧圆,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赋兵,死亡現(xiàn)場離奇詭異,居然都是意外死亡搔预,警方通過查閱死者的電腦和手機霹期,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拯田,“玉大人历造,你說我怎么就攤上這事〈樱” “怎么了吭产?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鸭轮。 經(jīng)常有香客問我臣淤,道長,這世上最難降的妖魔是什么窃爷? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任荒典,我火速辦了婚禮,結(jié)果婚禮上吞鸭,老公的妹妹穿的比我還像新娘寺董。我一直安慰自己,他們只是感情好刻剥,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布遮咖。 她就那樣靜靜地躺著,像睡著了一般造虏。 火紅的嫁衣襯著肌膚如雪御吞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天漓藕,我揣著相機與錄音陶珠,去河邊找鬼。 笑死享钞,一個胖子當(dāng)著我的面吹牛揍诽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼暑脆,長吁一口氣:“原來是場噩夢啊……” “哼渠啤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起添吗,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤沥曹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后碟联,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妓美,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年鲤孵,在試婚紗的時候發(fā)現(xiàn)自己被綠了部脚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡裤纹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丧没,到底是詐尸還是另有隱情鹰椒,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布呕童,位于F島的核電站漆际,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏夺饲。R本人自食惡果不足惜奸汇,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望往声。 院中可真熱鬧擂找,春花似錦、人聲如沸浩销。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽慢洋。三九已至塘雳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間普筹,已是汗流浹背败明。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留太防,地道東北人妻顶。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親盈包。 傳聞我的和親對象是個殘疾皇子沸呐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容