微信小程序 && 手机号授权登录

手机号授权登录

效果展示

 这里面用的是 uni-app 官方的登录 他支持多端发布

https://zh.uniapp.dcloud.io/api/plugins/login.html#loginicon-default.png?t=N7T8https://zh.uniapp.dcloud.io/api/plugins/login.html#login

下面是代码 

<template>
  <!-- 授权按钮 -->
  <button v-if="!headerAvatar || !getName" class="game" open-type="getPhoneNumber" @getphonenumber="fnlogin">
    <image class="weixinIcon" src="../../../static/login/weixin.png" mode=""></image>
    <text class="buttonTitle">微信用户登录</text>
  </button>
</template>

为了方便手机号的全局使用我们可以在pinia中 把手机号进行一个存储

首先现在 store文件夹下创建一个conter.js文件 里面来存储我们手机号登录的一些相关信息

import { defineStore } from 'pinia'
import { ref } from 'vue'

export const useWxStore = defineStore('counter',
  () => {
    // 微信 手机号存储
    const wxMobile = ref('')

    const saveWxMobile = (encryptedData) => {
      uni.setStorageSync('mobile', encryptedData)
      wxMobile.value = encryptedData
    }

    return { wxMobile, saveWxMobile }
  }, {
    persist: {

      paths: ['count']
    }
  }
)

<script setup>
// 微信----授权登录
// 先导入刚刚-store写好的状态管理
import { useWxStore } from '@/stores/conter.js';
const wxMobile = useWxStore();
// 登录接口
import { wxLogin } from '@/apis/login.js';
const Mobile = ref('');
const Code = ref('');
const fnlogin = (e) => {
  console.log('手机号', e);
  Mobile.value = e.detail.encryptedData;
  Code.value = e.detail.code;

  if (e.detail.errMsg == 'getPhoneNumber:ok') {
    wxMobile.saveWxMobile(e.detail.encryptedData);
    uni.showToast({
      title: '登录成功',
      icon: 'success',
      duration: 2000
    });
  } else {
    uni.showToast({
      title: '取消登录',
      icon: 'none',
      duration: 2000
    });
    return;
  }

  uni.login({
    success: async (res) => {
      console.log('success---res', res);
      if (res.code) {
        //发起网络请求--调接口
        const res = await wxLogin({ code: Code.value });
        console.log('接口--res', res);
        uni.request({
          // url: 'wxLogin',
          data: {
            code: res.code
          },
          method: 'post',
          success: (res) => {
            // console.log('-----success----');
            // console.log(res);
          },
          fail: (err) => {
            // console.log('---error----', err);
          }
        });
        uni.navigateTo({
          url: '/pages/index/index'
        });

        // 获取用户信息
        uni.getUserInfo({
          success: (infoRes) => {
            console.log('用户信息----', infoRes);
            avatar.value = infoRes.userInfo.avatarUrl;
            nickname.value = infoRes.userInfo.nickName;
          },
          fail: (error) => {
            console.log('获取用户信息失败', error);
          }
        });
      } else {
        console.log('登录失败!' + res.errMsg);
      }
    }
  });
};
</script>

  • 40
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
微信小程序登录授权手机号授权是开发微信小程序时常见的功能,以下是一些优化建议: 1. 引导用户理解授权目的:在用户进行登录手机号授权之前,向用户清晰地说明授权的目的和使用方式。提供简洁明了的说明,让用户明白为什么需要进行授权,并确保信息的安全性。 2. 简化登录流程:尽可能简化登录流程,减少用户操作。可以考虑使用一键登录或快捷登录功能,例如使用微信登录按钮,减少用户输入账号密码的步骤。 3. 提供其他登录方式:除了微信登录,还可以提供其他常见的登录方式,如手机号登录、邮箱登录或第三方账号登录。这样可以给用户更多选择,提高登录的便捷性。 4. 针对手机号授权优化: a. 自动填充手机号:在用户点击手机号授权按钮后,如果已经获取到用户手机号,则自动填充到输入框中,减少用户的手动输入。 b. 手机号验证:在获取到手机号后,对手机号进行格式验证,确保用户输入的是正确的手机号码。 c. 显示授权结果:在用户授权成功后,可以显示一个提示信息或跳转到下一步操作,让用户明确知道授权已经完成。 5. 提供明确的取消授权选项:在用户已经进行授权但后续不需要或想取消授权时,应提供一个明确的取消授权选项,让用户可以主动撤销授权。 6. 定期清理过期的授权信息:如果用户长时间未登录授权过期,应及时清理过期的授权信息,以确保用户的数据安全和准确性。 7. 保护用户隐私:在处理用户授权信息时,要严格遵守相关法规和隐私政策,确保用户数据的安全和保密性。 以上是一些微信小程序登录授权手机号授权的优化建议,根据具体的项目需求和用户体验考虑,可以灵活调整和适应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值