微信小程序開發(fā)如何保持登錄狀態(tài)(微信小程序?qū)崿F(xiàn)微信登錄)
本篇文章給大家談?wù)勎⑿判〕绦蜷_發(fā)如何保持登錄狀態(tài),以及微信小程序?qū)崿F(xiàn)微信登錄對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
- 1、微信小程序的登錄流程
- 2、如何讓微信小程序賬號(hào)密碼再次進(jìn)入不需要登錄
- 3、如何開發(fā)微信小程序必須微信登錄才可以查看當(dāng)前頁面
- 4、微信小程序開發(fā)-服務(wù)端session值取不到;小程序res.header['Set-Cookie']隱藏的坑
- 5、小程序保持登錄狀態(tài)的時(shí)長(zhǎng)
- 6、微信如何獲取用戶登陸狀態(tài) 1-微信小程序如何獲取登錄狀態(tài)(登錄的用戶怎么獲取登錄狀態(tài)自動(dòng)登錄,沒登?
微信小程序的登錄流程
傳統(tǒng)的web開發(fā)實(shí)現(xiàn)登陸功能,一般的做法是輸入賬號(hào)密碼、或者輸入手機(jī)號(hào)及短信驗(yàn)證碼進(jìn)行登錄。
服務(wù)端校驗(yàn)用戶信息通過之后,下發(fā)一個(gè)代表登錄態(tài)的 token 給客戶端,以便進(jìn)行后續(xù)的交互,每當(dāng)token過期,用戶都需要重新登錄。
而在微信小程序中,可以通過微信官方提供的登錄能力方便地獲取微信提供的用戶身份標(biāo)識(shí),快速建立小程序內(nèi)的用戶體系,從而實(shí)現(xiàn)登陸功能。
實(shí)現(xiàn)小程序用戶體系主要涉及到openid和code的概念:
1.調(diào)用wx.login()方法會(huì)生成code,將code作為參數(shù)傳遞給微信服務(wù)器指定接口,就可以獲取用戶的openid。
2.對(duì)于每個(gè)小程序,微信都會(huì)將用戶的微信ID映射出一個(gè)小程序 openid,作為這個(gè)用戶在這個(gè)小程序的唯一標(biāo)識(shí)。
微信小程序登陸具體實(shí)現(xiàn)的邏輯如下圖所示:
更加詳細(xì)的功能圖如下所示:
實(shí)際業(yè)務(wù)中,我們還需要登錄態(tài)是否過期,通常的做法是在登錄態(tài)(臨時(shí)令牌)中保存有效期數(shù)據(jù),該有效期數(shù)據(jù)應(yīng)該在服務(wù)端校驗(yàn)登錄態(tài)時(shí)和約定的時(shí)間(如服務(wù)端本地的系統(tǒng)時(shí)間或時(shí)間服務(wù)器上的標(biāo)準(zhǔn)時(shí)間)做對(duì)比。
這種方法需要將本地存儲(chǔ)的登錄態(tài)發(fā)送到小程序的服務(wù)端,服務(wù)端判斷為無效登錄態(tài)時(shí)再返回需重新執(zhí)行登錄過程的消息給小程。
另一種方式可以通過調(diào)用wx.checkSession檢查微信登陸態(tài)是否過期:
1.如果過期,則發(fā)起完整的登錄流程
2.如果不過期,則繼續(xù)使用本地保存的自定義登錄態(tài)
這種方式的好處是不需要小程序服務(wù)端來參與校驗(yàn),而是在小程序端調(diào)用AP,流程如下所示:
如何讓微信小程序賬號(hào)密碼再次進(jìn)入不需要登錄
讓微信小程序賬號(hào)密碼再次進(jìn)入不需要登錄的方法是:
1、首先進(jìn)行微信小程序頁面。
2、點(diǎn)擊想要進(jìn)入的小程序,以順豐小程序?yàn)槔?/p>
3、點(diǎn)擊進(jìn)入后會(huì)有一個(gè)微信登錄與手機(jī)登錄,都是以微信號(hào)做登錄的,這個(gè)不需要密碼,第二種就是手機(jī)登錄直接輸入手機(jī)號(hào)獲得驗(yàn)證碼登錄即可,忘記密碼選擇忘記密碼即可。
如何開發(fā)微信小程序必須微信登錄才可以查看當(dāng)前頁面
您好,
“微信小程序,”開發(fā)之前必須要完成和注冊(cè)認(rèn)證。如果是個(gè)人或者小公司想開發(fā)微信小程序,也可以找微信認(rèn)證第三方開發(fā)商,比如贏在移動(dòng)、正品科技等。
1、微信小程序注冊(cè)
在微信公眾平臺(tái)官網(wǎng)首頁,按照提示點(diǎn)擊右上角的“立即注冊(cè)”按鈕,里面總過有12步,按照要求提交就可以了。
2、小程序申請(qǐng)微信認(rèn)證
政府、媒體、其他組織類型帳號(hào),必須通過微信認(rèn)證驗(yàn)證主體身份。企業(yè)類型帳號(hào),可以根據(jù)需要確定是否申請(qǐng)微信認(rèn)證。已認(rèn)證帳號(hào)可使用微信支付、微信卡券等高級(jí)權(quán)限。
認(rèn)證入口:登錄小程序—設(shè)置—基本設(shè)置—微信認(rèn)證—詳情
3、小程序申請(qǐng)微信支付
已認(rèn)證的小程序可申請(qǐng)微信支付。
4、小程序綁定微信開放平臺(tái)帳號(hào)
小程序綁定微信開放平臺(tái)帳號(hào)后,可與帳號(hào)下的其他移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用及公眾號(hào)打通,通過UnionID機(jī)制滿足在多個(gè)應(yīng)用和公眾號(hào)之間統(tǒng)一用戶帳號(hào)的需求。
UnionID機(jī)制說明:如果開發(fā)者擁有多個(gè)移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用、和公眾帳號(hào)(包括小程序),可通過UnionID來區(qū)分用戶的唯一性,因?yàn)橹灰峭粋€(gè)微信開放平臺(tái)帳號(hào)下的移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號(hào)(包括小程序),用戶的unionid是唯一的。換句話說,同一用戶,對(duì)同一個(gè)微信開放平臺(tái)下的不同應(yīng)用,UnionID是相同的。用戶的UnionID可通過調(diào)用“獲取用戶信息”接口獲取。
5、了解“獲取用戶信息”接口請(qǐng)查看開發(fā)文檔—API—開放接口—用戶信息。
綁定小程序流程說明:登錄微信開放平臺(tái)、—管理中心—公眾帳號(hào)—綁定公眾帳號(hào)
注意:微信開放平臺(tái)帳號(hào)必須完成開發(fā)者資質(zhì)認(rèn)證才可以綁定小程序。
微信小程序開發(fā)-服務(wù)端session值取不到;小程序res.header['Set-Cookie']隱藏的坑
問題:本地服務(wù)器存取session沒有問題。通過小程序,比如發(fā)驗(yàn)證碼,服務(wù)器端將驗(yàn)證碼存為session。校驗(yàn)驗(yàn)證碼的時(shí)候重新取session,提示session值不存在。
根源:微信小程序不能保存Cookie,導(dǎo)致每次wx.request到服務(wù)端都會(huì)創(chuàng)建一個(gè)新的會(huì)話,從而當(dāng)前會(huì)話不再是之前存驗(yàn)證碼的那個(gè)會(huì)話,自然也就取不到session值了。
解決方法:(由于本人很懶,直接參考、引用大神的文章,文末有原文鏈接,原文板塊比較好看一點(diǎn)。我這里重點(diǎn)在于記錄微信小程序的另一個(gè)坑。)
普通的Web開發(fā),都是把sessionid保存在cookie中傳遞的。
不管是java還是php,服務(wù)端的會(huì)在response的header中加上Set-Cookie
例如:
瀏覽器的請(qǐng)求也會(huì)在header中加上
例如:
通過這個(gè)sessionid就能使瀏覽器端和服務(wù)端保持會(huì)話,使瀏覽器端保持登錄狀態(tài)。但是,微信小程序不能保存Cookie,導(dǎo)致每次wx.request到服務(wù)端都會(huì)創(chuàng)建一個(gè)新的會(huì)話,小程序端就不能保持登錄狀態(tài)了。
一個(gè)比較簡(jiǎn)單的辦法就是在小程序端把cookie保存到storage里,后續(xù)請(qǐng)求的時(shí)候再讀storage,把cookie添加到請(qǐng)求頭里,這樣做的好處就是,服務(wù)端不用做任何改動(dòng)
具體操作如下:
1.把服務(wù)端response的Set-Cookie中的值保存到Storage中
2.wx.request再?gòu)腟torage中取出Cookie,封裝到header中
我在這里還遇到了另外一個(gè)問題,當(dāng)服務(wù)器響應(yīng)多個(gè)Set-Cookie時(shí),小程序通過wx.request 回調(diào)取res.header['Set-Cookie']所取到的Set-Cookie值是把它們用逗號(hào)拼接在一起,從而產(chǎn)生的錯(cuò)誤的Cookie,這樣請(qǐng)求后臺(tái)的時(shí)候還是取不到相應(yīng)的session。而真正需要的是用分號(hào)拼接多個(gè)Set-Cookie值。例如:
服務(wù)器響應(yīng):
小程序通過res.header['Set-Cookie']取到的Set-Cookie值卻是:
而真正正確的值應(yīng)該是smallapp與session_name之間用分號(hào)隔開而不是逗號(hào):
但坑終究是坑,寄人籬下,有坑也只得我們自己填。
填坑方法:在步驟2中的if判斷中,自己重新拆分Storage中取出的Cookie,整理成后端需要的規(guī)范的cookie。再賦值給header.Cookie。
這個(gè)問題暫時(shí)沒找到其他解決方案,也請(qǐng)知道的朋友指點(diǎn)一下。
原文引用: 微信小程序開發(fā)-保存服務(wù)端sessionid的方法
鏈接:【點(diǎn)擊了解更多加盟項(xiàng)目】
小程序保持登錄狀態(tài)的時(shí)長(zhǎng)
五到十分鐘。小程序保持登錄狀態(tài)的時(shí)長(zhǎng)為五到十分鐘。微信小程序,簡(jiǎn)稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或搜一下即可打開。
微信如何獲取用戶登陸狀態(tài) 1-微信小程序如何獲取登錄狀態(tài)(登錄的用戶怎么獲取登錄狀態(tài)自動(dòng)登錄,沒登?
微信如何獲取用戶登錄狀態(tài),以微信小程序如何獲取登錄狀態(tài),登錄的用戶怎么獲取登錄狀態(tài)自動(dòng)登錄沒等。你只要進(jìn)入這個(gè)微信小程序,直接點(diǎn)開關(guān)注一下,就表明你已經(jīng)登錄了。
關(guān)于微信小程序開發(fā)如何保持登錄狀態(tài)和微信小程序?qū)崿F(xiàn)微信登錄的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。