一文教會(huì)你微信小程序如何實(shí)現(xiàn)登錄
業(yè)務(wù)流程:
1:首先需要一個(gè)按鈕觸發(fā)事件
2:調(diào)用微信小程序的登錄接口wx.login,拿到code
3:調(diào)用微信小程序的獲取用戶信息的接口wx.getUserProfile,拿到用戶的個(gè)人信息
4:拿到的個(gè)人信息調(diào)用后臺(tái)的接口,把個(gè)人信息傳給后臺(tái),登錄成功并把相關(guān)信息存儲(chǔ)在本地的緩存中,方便之后的開發(fā)使用
下面開始用代碼介紹
wxml:
<view> <button bindtap="login">登錄</button> </view>
js:
1:data初始數(shù)據(jù)
//后臺(tái)接口需要的一下參數(shù)(具體要和后臺(tái)的同事商量) loginInfo: { code: '', spread_spid: 0, spread_code: 0 }
2:按鈕觸發(fā)的login點(diǎn)擊事件
調(diào)用微信小程序的登錄接口:
wx.login(Object object) | 微信開放文檔
微信開發(fā)者平臺(tái)文檔
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
調(diào)用微信獲取用戶個(gè)人信息的接口:
wx.getUserProfile(Object object) | 微信開放文檔
微信開發(fā)者平臺(tái)文檔
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html
//登錄按鈕觸發(fā)的事件 login(){ let that = this //調(diào)用微信小程序的登錄接口 wx.login({ success(e) { that.data.loginInfo.code = e.code //拿到的code存儲(chǔ)在data中 wx.showModal({ title: '溫馨提示', content: '微信授權(quán)登錄后才能正常使用小程序功能', cancelText: '拒絕', confirmText: '同意', success( sucessInfo ) { //調(diào)用微信小程序的獲取用戶信息的接口 wx.getUserProfile({ desc: '用于完善會(huì)員資料', // 聲明獲取用戶個(gè)人信息后的用途 lang: 'zh_CN', success(info) { //把獲取到的信息復(fù)制到data中的loginInfo中 that.data.loginInfo = Object.assign( that.data.loginInfo, info ) //調(diào)用后臺(tái)的接口,把所有整合的個(gè)人信息傳過(guò)去 that.handlerLogin( that.data.loginInfo ) }, fail(e) { console.log('獲取用戶信息失敗', e) } }) }, fail() { console.log("拒絕") }, complete() {} }) }, fail(e) { console.log('fail', e) wx.showToast({ title: '網(wǎng)絡(luò)異常', duration: 2000 }) return } }) }
3:調(diào)用后臺(tái)的登錄接口
wx.setStorageSync() :將數(shù)據(jù)存儲(chǔ)在本地緩存中,
wx.setStorageSync(string key, any data) | 微信開放文檔
微信開發(fā)者平臺(tái)文檔
https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.setStorageSync.html
wx.getStorageSync('token') :獲取本地緩存的數(shù)據(jù)
any wx.getStorageSync(string key) | 微信開放文檔
微信開發(fā)者平臺(tái)文檔
https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.getStorageSync.html
//調(diào)用后臺(tái)的登錄接口 handlerLogin( loginInfo ) { let that = this //login是后臺(tái)接口封裝的方法 login( loginInfo ).then(( res ) => { console.log('登錄成功', res) let { cache_key, expires_time, token, userInfo } = res.data //把用戶信息存儲(chǔ)到storage中,方便其它地方使用 wx.setStorageSync('cache_key', cache_key) wx.setStorageSync('expires_time', expires_time) wx.setStorageSync('token', token) wx.setStorageSync('isLog', true) wx.setStorageSync('userInfo', JSON.stringify( userInfo )) wx.setStorageSync('loginRecord', new Date().getTime()) }) .catch(( res ) => { console.log('catch', res) }) .finally(() => { console.log('finally') }) }
總結(jié)
以上就是微信小程序開發(fā)時(shí),實(shí)現(xiàn)的登錄。一共4步走,希望能幫助得到大家。
到此這篇關(guān)于微信小程序如何實(shí)現(xiàn)登錄的文章就介紹到這了,更多相關(guān)微信小程序?qū)崿F(xiàn)登錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
bootstrap監(jiān)聽滾動(dòng)實(shí)現(xiàn)頭部跟隨滾動(dòng)
這篇文章主要為大家詳細(xì)介紹了bootstrap監(jiān)聽滾動(dòng)實(shí)現(xiàn)頭部跟隨滾動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11escape、encodeURI 和 encodeURIComponent 的區(qū)別
escape(), encodeURI()和encodeURIComponent()是在Javascript中用于編碼字符串的三個(gè)常用的方法,而他們之間的異同卻困擾了很多的Javascript初學(xué)者,今天我就在這里對(duì)這三個(gè)方法詳細(xì)地分析與比較一下。2009-03-03layui實(shí)現(xiàn)下拉框三級(jí)聯(lián)動(dòng)
這篇文章主要為大家詳細(xì)介紹了layui實(shí)現(xiàn)下拉框三級(jí)聯(lián)動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07UniApp中Scroll-View設(shè)置占滿下方剩余高度的方法記錄
在使用uniapp開發(fā)項(xiàng)目過(guò)程中有時(shí)候會(huì)想讓一些組件占有屏幕剩余的高度,下面這篇文章主要給大家介紹了關(guān)于UniApp中Scroll-View設(shè)置占滿下方剩余高度的方法,需要的朋友可以參考下2023-04-04JS中的函數(shù)與對(duì)象的創(chuàng)建方式
這篇文章主要介紹了JS中的函數(shù)與對(duì)象的創(chuàng)建方式,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05