一、uniapp與微信登錄簡介
uniapp是一個基於Vue.js框架的多端跨平台開發框架,可以同時開發出微信小程序、H5網頁、App應用等多個平台的應用程序。微信登錄則是基於微信公眾平台的開放能力所提供的一種登錄方式,用戶可以通過微信授權的方式登錄第三方應用,並使用微信賬號進行數據傳輸、支付等操作。
在uniapp中,通過微信開放的API和uniapp的封裝,可以方便地實現微信登錄功能,提高實現效率。
二、實現微信登錄的方法
1. 獲取微信授權登錄
首先需要在微信公眾平台進行配置,為應用開通授權登錄的能力,然後在uniapp的配置文件中添加相應的配置信息。
{
"mp-weixin": {
"appid": "xxxxxx",
"oauth": {
"scope": "snsapi_login",
"state": "#wechat_redirect",
"redirect_uri": "http://example.com"
}
}
}
其中,appid為微信公眾平台的應用ID,oauth為授權登錄的相關配置信息,scope為授權登錄的類型,snsapi_login為授權登錄的方式;state為微信回調的地址鏈接,#wechat_redirect為微信回調地址鏈接後面的參數;redirect_uri為授權後重定向的地址。
接下來,在頁面中添加微信登錄按鈕,並通過uniapp提供的API對按鈕添加點擊事件:
<template>
<button @click="loginWithWechat">微信登錄</button>
</template>
<script>
import {wxlogin} from '@/common/js/util.js'
export default {
methods: {
async loginWithWechat() {
const res = await uni.login({
provider: 'weixin'
})
const {code} = res[1]
wxlogin(code).then(res => {
console.log(res)
}).catch(error => {
console.error(error)
})
}
}
}
</script>
在調用微信登錄介面獲取到用戶的登錄憑證code之後,通過自定義的wxlogin方法發送請求至後端伺服器,進行微信授權登錄。
2. 後端微信授權登錄的實現
在後端伺服器中,可以通過微信提供的API獲取到用戶的基本信息、頭像、昵稱等資料,並與本地應用的賬號進行綁定,實現微信授權登錄的功能。
// 微信授權登錄獲取用戶信息
const wxLoginCallback = async (ctx, next) => {
const code = ctx.query.code
const res = await axios.get(`
https://api.weixin.qq.com/sns/jscode2session?appid=${appid}&secret=${appsecret}&js_code=${code}&grant_type=authorization_code
`)
const {openid, session_key} = res.data
const userInfo = await axios.get(`
https://api.weixin.qq.com/sns/userinfo?access_token=${session_key}&openid=${openid}&lang=zh_CN
`)
const {nickname, headimgurl, sex} = userInfo.data
const user = await User.findOrCreate({
where: {
openid: openid
},
defaults: {
nickname: nickname,
avatarUrl: headimgurl,
gender: sex
}
})
//生成token
const token = jwt.sign({
id: user[0].id,
openid: openid
}, secretKey, {
expiresIn: '24h'
})
ctx.body = {
success: true,
msg: '授權登錄成功',
data: {
token: token,
userInfo: user[0]
}
}
}
在獲取到用戶的信息之後,通過JSON Web Token (JWT)生成一個token,並返回至客戶端,實現登錄授權。
三、微信登錄的注意事項
1. 微信登錄功能必須在微信小程序、微信公眾號等微信官方平台中使用。
2. 微信登錄必須先在微信公眾平台中配置好授權登錄的相關信息,才能夠在應用程序中使用。
3. 微信登錄時,用戶需要確認授權登錄應用程序,否則將無法獲取到對應的用戶信息。
4. 微信登錄時,用戶如果已經在微信中登錄,可以在沒有重新輸入帳號和密碼的情況下登錄應用程序。
5. 微信登錄時,客戶端和伺服器需要進行相應的信息交互,以實現授權登錄的功能。
四、總結
本文主要介紹了基於uniapp的微信登錄實現方法,通過獲取微信授權登錄、後端微信授權登錄實現了授權登錄的功能,並闡述了微信登錄的注意事項。開發者可以按照上述方法實現微信登錄功能,提高應用程序的用戶體驗度。
原創文章,作者:CRMZ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/137602.html