微信小程序获取手机号登陆(目前微信获取手机号功能已经收费,体验版+正式版1000次免费使用)

微信小程序调用微信api直接获取用户手机号(使用open-type)

注意目前微信小程序防止强制性登陆,应当在用户查看小程序功能后才能让用户登陆,否则微信审核会不通过
前端界面如下:
在这里插入图片描述

wxml代码
<!--pages/login/login.wxml-->
<view class="login_container">
    <view class="content" wx:if="{
    
    { !agreementShow && !AntiFraudShow && !illegalShow}}">
        <image src="{
    
    {logoUrl}}"></image>
        <button class="login" bindtap="login">登录/注册</button>
        <button open-type="getPhoneNumber" class="get_phone" bindgetphonenumber="handlePhoneLogin">微信手机号快捷登录</button>
    </view>
</view>
js代码
// pages/login/login.js
import {
    
    get_phone,login} from '../../assets/api/login'
import APIConfig from "../../config/api";
Page({
    
    

  /**
   * 页面的初始数据
   */
  data: {
    
    
    code:'',
    phone:'',
    value:'',
    checked:false,
    team_code:'',// 团队cede
    company_code:'',// 承保公司code
    login_mode:'wx-phone',// 登陆方式--本页面为微信登陆
    logoUrl:`${
      
      APIConfig.baseUrl1}/logo/bjtp.png`
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    
    
    // 判断是否存在token--存在则直接跳转到到业务模块页面
    console.log(wx.getStorageSync("token"),'得到的token值');
    if (wx.getStorageSync("token") && wx.getStorageSync("token")  != '')
    return wx.redirectTo({
    
    
      url: "/pages/questionList/list",
    });
  },
  handlePhoneLogin:function(e){
    
    
    let that = this;
    let token = wx.getStorageSync('token');
    if (token) {
    
    
      wx.redirectTo({
    
     url: "/pages/questionList/list" })
    } else {
    
    
      that.data.code = e.detail.code
      console.log(e,'获取手机号');
      let param = {
    
    
        code:that.data.code
      }
      get_phone(param).then(res=>{
    
    
        let phone = res.phone_number
        this.setData({
    
    
          phone
        })
        // const form = new FormData();
        // form.append('username',phone)
        // form.append('password',phone)
        let obj = {
    
    
          username:that.data.phone,
          password:that.data.phone
        }
        login(obj).then(res=>{
    
    
          let token = res.token_type + ' ' + res.access_token
          console.log(token,'存下来的token值');
          wx.setStorageSync('token',token);
          wx.redirectTo({
    
     url: `/pages/questionList/list` })
          })
        })
    }
  },
  //去往注册页面
  login(){
    
    
    wx.redirectTo({
    
    
      url: '/pages/register/register',
    })
  },
})

猜你喜欢

转载自blog.csdn.net/weixin_42631244/article/details/131802551