微信小程登录功能和获取手机号

本文介绍了微信小程序结合Node.js实现登录功能和获取用户手机号的详细步骤。前端通过button组件获取encryptedData和iv,使用wx.login获取code,然后发送请求至后端。后端通过调用微信API获取session_key,并利用session_key解密获取电话号码。

微信小程序 + node

前端:

步骤一: 要使用 button 按钮 open-type 属性值设置为 “getPhoneNumber” 并绑定 bindgetphonenumber 事件,目的为得到 encryptedData 和 iv 字段。或者调用 wx.getUserProfile(Object object) 也可以得到 encryptedData 和 iv 字段。

步骤二: 使用 wx.login(Object object) 目的为得到 code 字段。

步骤三:发请求 wx.request(Object object) 把 code 、encryptedData 和 iv 字段 传到后端。

后端:

步骤一: 向腾讯服务器发请求 ( 详情请查看官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html ) ,服务器 ====》 登录 ====》auth.code2Session 文档 , 目的是为了得到 session_key 字段。
本地服务器 和 微信服务器 之间 的
1.请求接口 : https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
2.请求类型: GET
3.请求参数: js_code(前端传过来的 code)、appid(自己的小程序 appId)、secret(自己的小程序 appSecret)、grant_type(授权类型,此处只需填写 authorization_code)
4.如何获取: appid 、 appSecret 登录到 " 微信公众平台 ====》 左边导航栏(点击开发 ) ====》点击开发管理 ====》开发设置(就可以看到 appid 、 appSecret)"

步骤二:解密电话号码 从腾讯服务端换取的 session_key 和 前端传过来的 encryptedData、iv 就可以解密出电话号码。

案例一

小程序代码

<!--wxml-->
<view>
   <button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号码</button>
   <button bindtap="onLogin">登录</button>
</view>
//js
Page({
   
   
    data: {
   
   
        code: '',
        iv: '',
        encryptedData: '',
        user_phone: '',
        user_image: '',
        user_sex: '',
        user_name: ''
    },
    onLoad: function(options) {
   
   
        //获取 code 
        wx.login({
   
   
           //注意一下: 如果使用箭头函数 this 指向 Page 页面 ,不是箭头函数 this 指向 微信对象。
           //不是箭头函数 需要在外面保存 this 
           success:(res)=>{
   
   
               this.s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值