一文教會你微信小程序如何實(shí)現(xiàn)登錄
業(yè)務(wù)流程:
1:首先需要一個按鈕觸發(fā)事件
2:調(diào)用微信小程序的登錄接口wx.login,拿到code
3:調(diào)用微信小程序的獲取用戶信息的接口wx.getUserProfile,拿到用戶的個人信息
4:拿到的個人信息調(diào)用后臺的接口,把個人信息傳給后臺,登錄成功并把相關(guān)信息存儲在本地的緩存中,方便之后的開發(fā)使用
下面開始用代碼介紹
wxml:
<view>
<button bindtap="login">登錄</button>
</view>
js:
1:data初始數(shù)據(jù)
//后臺接口需要的一下參數(shù)(具體要和后臺的同事商量)
loginInfo: {
code: '',
spread_spid: 0,
spread_code: 0
}
2:按鈕觸發(fā)的login點(diǎn)擊事件
調(diào)用微信小程序的登錄接口:
wx.login(Object object) | 微信開放文檔
微信開發(fā)者平臺文檔
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
調(diào)用微信獲取用戶個人信息的接口:
wx.getUserProfile(Object object) | 微信開放文檔
微信開發(fā)者平臺文檔
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存儲在data中
wx.showModal({
title: '溫馨提示',
content: '微信授權(quán)登錄后才能正常使用小程序功能',
cancelText: '拒絕',
confirmText: '同意',
success( sucessInfo ) {
//調(diào)用微信小程序的獲取用戶信息的接口
wx.getUserProfile({
desc: '用于完善會員資料', // 聲明獲取用戶個人信息后的用途
lang: 'zh_CN',
success(info) {
//把獲取到的信息復(fù)制到data中的loginInfo中
that.data.loginInfo = Object.assign( that.data.loginInfo, info )
//調(diào)用后臺的接口,把所有整合的個人信息傳過去
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)用后臺的登錄接口
wx.setStorageSync() :將數(shù)據(jù)存儲在本地緩存中,
wx.setStorageSync(string key, any data) | 微信開放文檔
微信開發(fā)者平臺文檔
https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.setStorageSync.html
wx.getStorageSync('token') :獲取本地緩存的數(shù)據(jù)
any wx.getStorageSync(string key) | 微信開放文檔
微信開發(fā)者平臺文檔
https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.getStorageSync.html
//調(diào)用后臺的登錄接口
handlerLogin( loginInfo ) {
let that = this
//login是后臺接口封裝的方法
login( loginInfo ).then(( res ) => {
console.log('登錄成功', res)
let { cache_key, expires_time, token, userInfo } = res.data
//把用戶信息存儲到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í)現(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
前端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。而全等(===)的時候需要值和類型都要匹配才能返回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

