可以根据返回值传给后台用于登录,相当于账号密码
<template>
<view>
<button type="primary" @click="login">微信登录</button>
</view>
</template>
<script setup lang="ts">
const login = async () => {
const res = await uni.getUserProfile({
desc: '获取您的用户信息用于登录'
})
console.log('获取用户加密的信息', res);
}
</script>
-
获取code
async onLoad () {
// 1. 获取微信用户登录凭证
try {
const codeData = await uni.login()
// 把成功获取的用户登录凭证存到this上
this.code = codeData.code
} catch (error) {
console.log(error)
}
},
-
传入用户信息和code登录
// 调用接口登录·
async login (user) {
// 登录所需参数
const { encryptedData, iv, rawData, signature } = user
// 微信用户登录凭证=》code
// const codeData = await uni.login()
let { msg, data } = await this.request({
url: "/api/public/v1/users/wxlogin",
method: "post",
data: {
encryptedData,
iv,
rawData,
signature,
code: this.code
}
})
// 存储token,返回上次访问页面
uni.setStorageSync("token", data.token)
uni.navigateBack()
}