更新记录
1.0.2(2025-08-24) 下载此版本
修复安装uni-modules问题
1.0.1(2025-08-23) 下载此版本
更新适配uni-modules
1.0.0(2025-08-23) 下载此版本
更新日志
-
重大更新: 简化接口需求,现在只需要2个接口
-
移除:
getUserProfile
后端接口,直接使用微信API -
优化: 外部处理模式的事件参数结构
-
新增: 三种使用场景的详细说明
-
新增外部处理模式,支持完全自定义API调用逻辑
-
新增externalHandling配置选项
-
新增externalLogin和externalUpdateUserInfo事件
-
移除wxLogin配置,始终使用uni.login()获取code
-
简化API配置结构
-
保留getUserProfile配置的灵活性
平台兼容性
uni-app(4.07)
Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
---|---|---|---|---|---|---|---|---|
× | √ | × | × | × | × | × | × | × |
微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
---|---|---|---|---|---|---|---|---|---|---|
√ | × | × | × | × | × | × | × | × | × | × |
其他
多语言 | 暗黑模式 | 宽屏模式 |
---|---|---|
× | × | √ |
一键微信登录
一个灵活的微信登录组件,支持静默登录、用户信息获取等功能。
重要更新: 当前版本只需要 2个接口 即可实现完整功能。
功能特性
- ✅ 一键快捷登录
- ✅ 静默登录(自动登录)
- ✅ 用户信息获取
- ✅ 灵活的API配置
- ✅ 内部/外部处理模式
- ✅ 自动跳转控制
- ✅ 完整的错误处理
- ✅ 三种使用场景(简化版、完整版、外部处理版)
基本使用
简化版配置(只传递微信登录接口)
<template>
<one-wechat-login
:silentLogin="true"
:autoRedirect="true"
:showGetUserInfo="false"
@init-api="onInitApi"
@login-success="onLoginSuccess"
@login-error="onLoginError"
/>
</template>
<script setup>
import { loginAPI } from '@/service/auth'
const onInitApi = (callback) => {
callback({
wechatLogin: loginAPI
// 不传递updateUserInfo,插件会只更新本地用户信息
})
}
const onLoginSuccess = (token, userInfo) => {
console.log('登录成功:', token, userInfo)
}
const onLoginError = (error) => {
console.error('登录失败:', error)
}
</script>
完整版配置(传递所有接口)
<template>
<one-wechat-login
:silentLogin="true"
:autoRedirect="true"
:showGetUserInfo="true"
@init-api="onInitApi"
@login-success="onLoginSuccess"
@login-error="onLoginError"
/>
</template>
<script setup>
import { loginAPI, updateUserInfoAPI } from '@/service/auth'
const onInitApi = (callback) => {
callback({
wechatLogin: loginAPI,
updateUserInfo: updateUserInfoAPI
})
}
const onLoginSuccess = (token, userInfo) => {
console.log('登录成功:', token, userInfo)
}
const onLoginError = (error) => {
console.error('登录失败:', error)
}
</script>
外部处理模式(不需要任何接口)
<template>
<one-wechat-login
:externalHandling="true"
:silentLogin="false"
:showGetUserInfo="true"
@external-login="onExternalLogin"
@external-update-user-info="onExternalUpdateUserInfo"
/>
</template>
<script setup>
const onExternalLogin = async (data) => {
const { code, userProfileData } = data
// 完全自定义登录逻辑
const response = await uni.request({
url: 'https://your-api.com/wechat/login',
method: 'POST',
data: {
wechatCode: code,
platform: 'miniprogram',
userProfileData: userProfileData,
customParam: '自定义参数'
}
})
// 自定义处理返回结果
if (response.statusCode === 200) {
// 处理登录成功
}
}
const onExternalUpdateUserInfo = async (data) => {
// 完全自定义更新用户信息逻辑
const response = await uni.request({
url: 'https://your-api.com/user/update',
method: 'PUT',
data: {
userId: data.openId,
profile: data.userInfo
}
})
}
</script>
API 配置
必需接口
wechatLogin
: 微信登录接口,接收code参数,返回token和用户信息
可选接口
updateUserInfo
: 更新用户信息接口
已移除接口
: 不再需要后端接口,直接使用微信的getUserProfile
uni.getUserProfile()
三种使用场景
1. 简化版 - 1个接口
- 适用场景: 只需要微信登录功能,用户信息更新使用本地存储
- 配置: 只传递
wechatLogin
接口 - 特点: 配置简单,功能基础
2. 完整版 - 2个接口
- 适用场景: 需要完整的登录和用户信息更新功能
- 配置: 传递
wechatLogin
和updateUserInfo
接口 - 特点: 功能完整,支持后端用户信息更新
3. 外部处理版 - 0个接口
- 适用场景: 需要完全自定义的登录和用户信息处理逻辑
- 配置: 不传递任何接口,通过事件处理
- 特点: 最大灵活性,完全自定义
Props 配置
属性 | 类型 | 默认值 | 说明 |
---|---|---|---|
disabled | Boolean | false | 是否禁用 |
showGetUserInfo | Boolean | true | 是否显示获取用户信息 |
silentLogin | Boolean | true | 是否启用静默登录 |
autoRedirect | Boolean | true | 是否自动跳转 |
redirectUrl | String | 'pages/index/index' | 跳转页面路径 |
fontSize | String | '30rpx' | 按钮字体大小 |
iconBgColor | String | '#07C160' | 按钮背景色 |
borderRadius | String | '50rpx' | 按钮圆角 |
externalHandling | Boolean | false | 是否启用外部处理模式 |
事件
事件名 | 参数 | 说明 |
---|---|---|
initApi | callback | 初始化API配置 |
loginSuccess | token, userInfo | 登录成功 |
loginError | error | 登录失败 |
getUserInfoSuccess | userInfo | 获取用户信息成功 |
getUserInfoError | error | 获取用户信息失败 |
externalLogin | { code, userProfileData } | 外部处理模式:登录请求 |
externalUpdateUserInfo | { openId, userInfo } | 外部处理模式:更新用户信息请求 |
更新日志
v1.0.0
-
重大更新: 简化接口需求,现在只需要2个接口
-
移除:
getUserProfile
后端接口,直接使用微信API -
优化: 外部处理模式的事件参数结构
-
新增: 三种使用场景的详细说明
-
重命名: 组件名改为"一键微信登录"
-
新增外部处理模式,支持完全自定义API调用逻辑
-
新增externalHandling配置选项
-
新增externalLogin和externalUpdateUserInfo事件
-
移除wxLogin配置,始终使用uni.login()获取code
-
简化API配置结构
-
保留getUserProfile配置的灵活性