本篇文章給大家?guī)砹岁P于微信小程序的相關知識,其中主要介紹了怎么實現小程序授權登錄功能的相關內容,下面一起來看一下,希望對大家有幫助。
【相關學習推薦:小程序學習教程】
在我們平時工作、學習、生活中,微信小程序已成為我們密不可分的一部分,我們仔細留意下,每當我們使用一個新的小程序時,總會遇到如下頁面:
這便是微信小程序授權登錄功能了,授權登錄后,我們就可以正常使用小程序,而小程序也會獲取到我們的用戶權益,手機號等個人信息
授權登錄功能剖析
微信小程序的授權登錄具體步驟如下所示
具體實現主要有以下三個步驟:
調用wx.login() 微信api獲取臨時登錄憑證code,并回傳到開發(fā)者服務器
調用auth.code2Session?微信api接口,獲取用戶唯一標識OpenID、 用戶在微信開放平臺帳號下的唯一標識UnionID和會話密鑰session_key
通過步驟2獲取的參數進行解密操作,獲取用戶手機號,頭像等特性,并把需要的數據保存到緩存中
步驟實現代碼如下:
一、獲取臨時登錄憑證code
由于微信官方修改了getUserInfo接口,現在無法實現一進入微信小程序就會自動彈出授權窗口,所以我們只能通過button按鈕讓用戶手動觸發(fā)
我們先寫一個簡單的彈框,用isShow變量控制,isShow取決于步驟3中的緩存信息,當所有步驟都走通,會正確緩存用戶信息,此時彈框隱藏,否則彈框都為顯示狀態(tài)
??<view class='wx_dialog' wx:if="{{isShow}}"> ????????<view class='wx_content'> ??????????<text>需要先授權獲取個人信息</text> ??????????<button class="btn" open-type="getPhoneNumber" type="primary" bindgetphonenumber="getUserInfo">微信賬號快速授權</button> ????????</view> ??</view>
點擊按鈕時,調用getUserInfo方法,isShow設置為false,同時使用wx.login獲取到登錄憑證code
getUserInfo:e=>{??????this.setData({????????isShow:false ??????}) ??????wx.login({????????success:?function?(res)?{???????????????let?code?=?res.code?//?登錄憑證code ?????????} ??????}) ?????? ??}
二、根據登錄憑證code,獲取用戶登錄信息
拿到登錄憑證code后,調用auth.code2Session?微信api接口(此處為服務端操作,后端大佬搞定,我們直接調用他給的接口就好)
?????????wx.request({????????????????url:?獲取用戶信息的auth.code2Session微信api接口,????????????????method:?'POST',????????????????data:{??????????????????code:code//登錄憑證code ????????????????},????????????????header:?{??????????????????'content-type':?'application/json;charset=UTF-8' ????????????????},???????????????? ????????????????success:?function?(res)?{??????????????????var?userphone=?res.data.data??????????????????//解密手機號 ??????????????????var?msg?=?e.detail.errMsg;??????????????????var?sessionKey?=?userphone.session_key;//會話密鑰 ??????????????????var?encryptedData=e.detail.encryptedData;?//簽名 ??????????????????var?unionid?=?userphone.unionid//唯一標識 ??????????????????var?iv=?e.detail.iv;??????????????????//授權成功 ??????????????????if?(msg?==?'getPhoneNumber:ok')?{ ????????????????????wx.checkSession({??????????????????????success:function(){????????????????????????//進行請求服務端解密手機號 ????????????????????????this.deciyption(sessionKey,encryptedData,iv,unionid); ??????????????????????} ????????????????????}) ??????????????????} ????????????????} ??????????????}) ????????} ??????})
此時大多數用戶信息我們已經獲取了,但用戶手機號,用戶頭像等信息還處于加密狀態(tài),我們需要去解密獲取這些參數
三、根據用戶信息,解密獲取用戶手機號
deciyption(sessionKey,encryptedData,iv,unionid){????var?that?=?this; ????wx.request({??????url:?解密接口,??????method:?'POST',??????data:?{????????sessionKey:?sessionKey,????????encryptedData:encryptedData,????????iv:?iv ??????},??????header:?{????????'content-type':?'application/json;charset=UTF-8' ??????},??????success:?function(res)?{ ????????let?data?=?res.data????????if?(data.resultCode?==?'success')?{ ????????????wx.setStorageSync('userTel',?data.data.phoneNumber);//存儲解密后的用戶手機號 ????????}else{ ????????????wx.showToast({????????????????title:?'獲取信息失敗請重新授權',????????????????icon:?'none' ????????????}) ????????????that.setData({????????????????isShow:true ????????????}) ????????}???? ??????}, ??????fail:function(res)?{ ????????wx.showToast({????????????title:?'獲取失敗請重新授權',????????????icon:?'none' ????????}) ????????that.setData({??????????isShow:true ????????}) ??????} ????}) ??},
此時授權登錄功能已完成
【相關學習推薦:小程序學習教程】
以上是簡單介紹:實現小程序授權登錄功能的詳細內容。更多信息請關注PHP中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

閑魚官方微信小程序悄然上線,在小程序中可以發(fā)布閑置與買家/賣家私信交流、查看個人資料及訂單、搜索物品等,有用好奇閑魚微信小程序叫什么,現在快來看一下。閑魚微信小程序叫什么答案:閑魚,閑置交易二手買賣估價回收。1、在小程序中可以發(fā)布閑置、與買家/賣家私信交流、查看個人資料及訂單、搜索指定物品等功能;2、在小程序的頁面中有首頁、附近、發(fā)閑置、消息、我的5項功能;3、想要使用的話必要要開通微信支付才可以購買;

實現微信小程序中的圖片濾鏡效果隨著社交媒體應用的流行,人們越來越喜歡在照片中應用濾鏡效果,以增強照片的藝術效果和吸引力。在微信小程序中也可以實現圖片濾鏡效果,為用戶提供更多有趣和創(chuàng)造性的照片編輯功能。本文將介紹如何在微信小程序中實現圖片濾鏡效果,并提供具體的代碼示例。首先,我們需要在微信小程序中使用canvas組件來加載和編輯圖片。canvas組件可以在頁面

實現微信小程序中的下拉菜單效果,需要具體代碼示例隨著移動互聯網的普及,微信小程序成為了互聯網開發(fā)的重要一環(huán),越來越多的人開始關注和使用微信小程序。微信小程序的開發(fā)相比傳統(tǒng)的APP開發(fā)更加簡便快捷,但也需要掌握一定的開發(fā)技巧。在微信小程序的開發(fā)中,下拉菜單是一個常見的UI組件,實現了更好的用戶操作體驗。本文將詳細介紹如何在微信小程序中實現下拉菜單效果,并提供具

閑魚官方微信小程序已經悄然上線,它為用戶提供了一個便捷的平臺,讓你可以輕松地發(fā)布和交易閑置物品。在小程序中,你可以與買家或賣家進行私信交流,查看個人資料和訂單,以及搜索你想要的物品。那么閑魚在微信小程序中究竟叫什么呢,這篇教程攻略將為您詳細介紹,想要了解的用戶們快來跟著本文繼續(xù)閱讀吧!閑魚微信小程序叫什么答案:閑魚,閑置交易二手買賣估價回收。1、在小程序中可以發(fā)布閑置、與買家/賣家私信交流、查看個人資料及訂單、搜索指定物品等功能;2、在小程序的頁面中有首頁、附近、發(fā)閑置、消息、我的5項功能;3、

微信小程序實現圖片上傳功能隨著移動互聯網的發(fā)展,微信小程序已經成為了人們生活中不可或缺的一部分。微信小程序不僅提供了豐富的應用場景,還支持開發(fā)者自定義功能,其中包括圖片上傳功能。本文將介紹如何在微信小程序中實現圖片上傳功能,并提供具體的代碼示例。一、前期準備工作在開始編寫代碼之前,我們需要先下載并安裝微信開發(fā)者工具,并注冊成為微信開發(fā)者。同時,還需要了解微信

使用微信小程序實現輪播圖切換效果微信小程序是一種輕量級的應用程序,具有簡單、高效的開發(fā)和使用特點。在微信小程序中,實現輪播圖切換效果是常見的需求。本文將介紹如何使用微信小程序實現輪播圖切換效果,并給出具體的代碼示例。首先,在微信小程序的頁面文件中,添加一個輪播圖組件。例如,可以使用<swiper>標簽來實現輪播圖的切換效果。在該組件中,可以通過b

實現微信小程序中的圖片旋轉效果,需要具體代碼示例微信小程序是一種輕量級的應用程序,為用戶提供了豐富的功能和良好的用戶體驗。在小程序中,開發(fā)者可以利用各種組件和API來實現各種效果。其中,圖片旋轉效果是一種常見的動畫效果,可以為小程序增添趣味性和視覺效果。在微信小程序中實現圖片旋轉效果,需要使用小程序提供的動畫API。下面是一個具體的代碼示例,展示了如何在小程

實現微信小程序中的滑動刪除功能,需要具體代碼示例隨著微信小程序的流行,開發(fā)者們在開發(fā)過程中經常會遇到一些常見功能的實現問題。其中,滑動刪除功能是一個常見、常用的功能需求。本文將為大家詳細介紹如何在微信小程序中實現滑動刪除功能,并給出具體的代碼示例。一、需求分析在微信小程序中,滑動刪除功能的實現涉及到以下要點:列表展示:要顯示可滑動刪除的列表,每個列表項需要包
