微信小程序出现【需要进行身份验证】弹框解决方法
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
問(wèn)題
在做微信小程序時(shí),需要使用 Authorization 進(jìn)行授權(quán),結(jié)果每次登錄的時(shí)候都出現(xiàn)這個(gè)彈窗。
原因
部分代碼如下,按說(shuō)使用了 Authorization 授權(quán)時(shí),會(huì)將用戶名和密碼用 base64 進(jìn)行編碼然后放到 header 中傳入后端代碼,就像這里的 'Authorization': 'Basic V0VDSEFUOldFQ0hBVAo=',在服務(wù)端也會(huì)有固定的用戶名密碼,與之比較,相同則身份通過(guò),否則不通過(guò)才會(huì)出現(xiàn)上述這種彈窗。
wx.request({// .....data: {grant_type: 'password',username: user.username,password: user.password},header: {'Authorization': 'Basic V0VDSEFUOldFQ0hBVAo=','Content-Type': 'application/x-www-form-urlencoded'}, success: function (res) {// .... } });這里的 V0VDSEFUOldFQ0hBVAo= 用 base64 解碼之后確實(shí)是 WECHAT:WECHAT,格式為:用戶名:密碼,也就是用戶名是 WECHAT,密碼也是 WECHAT。截圖如下,乍看好像是解碼為 WECHAT:WECHAT,但事實(shí)并不是這樣的。
在上面文本框中輸入 WECHAT:WECHAT,點(diǎn)擊編碼按鈕得到 V0VDSEFUOldFQ0hBVA==,可以看到與先前的 V0VDSEFUOldFQ0hBVAo= 并不一樣。無(wú)疑下面這種直接對(duì) WECHAT:WECHAT 進(jìn)行編碼得到的結(jié)果肯定是正確的,那上面那種是怎么出來(lái)的呢??可以試試在上面對(duì)話框輸入 WECHAT:WECHAT 并且按一下 Enter 鍵進(jìn)行換行,再點(diǎn)擊編碼就得到了之前的那種編碼值。
可見:使用正確的編碼之后,因?yàn)橛脩裘兔艽a都正確,所以就不會(huì)再出現(xiàn)那種要求驗(yàn)證身份的對(duì)話框了。
解決
使用 base64 進(jìn)行編碼時(shí),要注意不要多加了換行或者空格,得到的結(jié)果都是不一樣的。
出現(xiàn)驗(yàn)證身份對(duì)話框的情景總結(jié)如下:
- 用戶名和密碼錯(cuò)誤;
- 用戶名和密碼正確,但是使用 base64 編碼錯(cuò)誤,常見情形:多加了換行符或者空格符。
轉(zhuǎn)載于:https://my.oschina.net/dkvirus/blog/1585334
超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的微信小程序出现【需要进行身份验证】弹框解决方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 并发编程之多进程3 (生产者与消费者模型
- 下一篇: 算法的分析思路