一文教會(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è)人信息傳過去
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS前端組件設(shè)計(jì)以業(yè)務(wù)為導(dǎo)向?qū)嵺`思考
這篇文章主要為大家介紹了JS前端組件設(shè)計(jì)以業(yè)務(wù)為導(dǎo)向?qū)嵺`思考,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
獲取JAVASCRIPT時(shí)間戳函數(shù)的5種方法
JavaScript獲得時(shí)間戳的方法有五種,后四種都是通過實(shí)例化時(shí)間對象new?Date()?來進(jìn)一步獲取當(dāng)前的時(shí)間戳,JavaScript處理時(shí)間主要使用時(shí)間對象Date,本文對js時(shí)間戳函數(shù)獲取方法給大家介紹的非常詳細(xì),需要的朋友參考下吧2024-01-01
前端js使用xlsx-js-style導(dǎo)出Excel文件并修飾單元格樣式
這篇文章主要給大家介紹了關(guān)于前端js使用xlsx-js-style導(dǎo)出Excel文件并修飾單元格樣式的相關(guān)資料,前端開發(fā)過程中經(jīng)常遇到導(dǎo)出excel的需求,需要的朋友可以參考下2023-08-08
javascript中等于(==)與全等(===)的區(qū)別說明
等于(==)的情況下 只要值相同就返回True。而全等(===)的時(shí)候需要值和類型都要匹配才能返回True.2011-01-01
微信小程序開發(fā)之map地圖實(shí)現(xiàn)教程
相信大家現(xiàn)在都知道微信小程序吧,下面這篇文章主要給大家介紹了微信小程序開發(fā)之map地圖的相關(guān)資料,分享出來供大家參考學(xué)習(xí),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-06-06

