更新记录

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个接口

  • 适用场景: 需要完整的登录和用户信息更新功能
  • 配置: 传递 wechatLoginupdateUserInfo 接口
  • 特点: 功能完整,支持后端用户信息更新

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配置的灵活性

隐私、权限声明

1. 本插件需要申请的系统权限列表:

微信登录权限、网络访问权限、本地存储权限

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

采集数据:微信登录code、用户基本信息(需授权)、设备信息 服务器地址:用户配置的后端接口地址 数据用途:微信登录验证、用户资料完善、登录安全验证 隐私保护:插件不直接存储敏感信息,数据通过用户配置的API处理

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT License

Copyright (c) 2024 微信登录插件

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

暂无用户评论。