图鸟UI-微信授权登录:用户信息设置与微信头像弹框的实现

科技   教育   2024-11-07 00:00   广东  


一、引言

在微信小程序开发中,实现用户信息的快速设置和微信头像的便捷使用是提升用户体验的重要一环。图鸟UI作为一个基于uni-app开发的UI框架,提供了丰富的组件和模板,极大地简化了开发过程。本文将详细介绍如何使用图鸟UI实现微信授权登录,用户信息设置以及微信头像弹框功能。

二、准备工作

  1. 注册与认证
  • 首先,需要在微信开放平台注册开发者账号,并完成开发者认证。
  • 创建小程序应用,并获取AppID和AppSecret。
  • 小程序后台设置
    • 登录小程序后台,在“设置”中完善小程序服务内容声明,特别是用户信息选项。
    • 提交审核并等待通过。
  • 开发环境配置
    • 安装并配置HBuilderX,确保版本在3.1.0及以上,以支持uni_modules规范插件。
    • 下载并导入图鸟UI相关插件,如tuniaoui-wx-user-info

    三、实现步骤

    引入图鸟UI组件
    在项目中引入图鸟UI的微信用户信息组件,例如
    tuniaoui-wx-user-info
    <template>    <view class="login-page">      <!-- 授权登录按钮 -->      <view class="submit-btn" @tap.stop="openAuthorizationModal">授权登录</view>      <wx-user-info-modal v-model="showAuthorizationModal" @updated="updatedUserInfoEvent"></wx-user-info-modal>    </view>  </template>  
    <script> import WxUserInfoModal from '@/uni_modules/tuniaoui-wx-user-info/components/tuniaoui-wx-user-info/tuniaoui-wx-user-info.vue'
    export default { components: { WxUserInfoModal }, data() { return { showAuthorizationModal: false } }, methods: { // 打开获取用户信息弹框 openAuthorizationModal() { this.showAuthorizationModal = true }, // 获取到的用户信息 updatedUserInfoEvent(info) { console.log('获取到的用户信息', info) } } } </script>
    <style> .login-page { width: 100vw; height: 100vh; display: flex; align-items: center; justify-content: center; } .submit-btn { width: 100%; background-color: #05C160; color: #FFFFFF; margin-top: 60rpx; border-radius: 10rpx; padding: 25rpx; font-size: 32rpx; display: flex; align-items: center; justify-content: center; margin: 30rpx; } </style>
    1. 实现微信授权登录
    • 用户点击授权登录按钮时,调用uni.getUserProfile获取用户信息。
      需要注意的是,uni.getUserProfile接口在调用时,必须提供desc字段描述获取用户信息的用途。

      methods: {    async openAuthorizationModal() {      this.showAuthorizationModal = true      try {        const userInfo = await uni.getUserProfile({          desc: '用于完善用户资料'        })        console.log('用户信息', userInfo)        // 处理用户信息,如保存到服务器      } catch (error) {        console.error('获取用户信息失败', error)      }    }  }
  • 处理用户头像
    • 用户选择头像时,可以通过chooseAvatar接口获取临时头像路径。
    • 开发者需要将临时头像文件上传到自己的服务器进行保存。
      methods: {    onChooseAvatar(e) {      const avatarUrl = e.detail.avatarUrl      // 上传头像到服务器      wx.uploadFile({        url: '你的文件上传接口地址',        filePath: avatarUrl,        name: 'file',        formData: {          'token': '你的token'        },        success: (uploadFileRes) => {          const data = uploadFileRes.data          // 保存头像URL到用户信息中          this.userInfo.avatarUrl = data.avatarUrl        }      })    }  }
  • 后端接口对接
    • 前端获取到用户的code后,通过后端接口请求微信服务器,获取用户的openid和session_key。
    • 使用openid和session_key可以进一步获取用户的详细信息,并进行后续的业务处理。
      async login() {    try {      const loginRes = await uni.login({        provider: 'weixin'      })      const { code } = loginRes  
      // 请求后端接口,获取openid和session_key const res = await uni.request({ url: 'https://api.weixin.qq.com/sns/jscode2session', method: 'GET', data: { appid: '你的AppID', secret: '你的AppSecret', js_code: code, grant_type: 'authorization_code' } })
      const { openid, session_key } = res.data // 保存openid和session_key到本地或服务器 uni.setStorageSync('openid', openid) uni.setStorageSync('session_key', session_key)
      // 获取用户信息并保存到服务器 const userInfo = await uni.getUserProfile({ desc: '用于完善用户资料' }) const { nickName, avatarUrl } = userInfo
      // 上传用户信息到服务器 await uni.request({ url: '你的用户信息保存接口地址', method: 'POST', data: { openid, nickName, avatarUrl } })
      uni.showToast({ title: '授权登录成功', icon: 'success' }) } catch (error) { console.error('登录失败', error) } }

    四、结论

    通过以上步骤,我们成功实现了图鸟UI框架下的微信授权登录功能,包括用户信息设置和微信头像弹框。这一功能不仅提升了用户体验,还为后续的用户管理和业务逻辑处理提供了基础。在实际开发中,可以根据具体需求对代码进行进一步优化和扩展。


    项目地址
    https://ext.dcloud.net.cn/plugin?id=10172

    前端技术交流:

    软件接单交流群:



    前端组件开发
    专注开发和分享前后端组件以及开源前后端框架,以此来提高前后端技术开发的效率。全网有10w+前端伙伴,打造互联网产品渠道平台。
     最新文章