当前位置: 代码网 > 移动>腾讯>微信 > 简单介绍:实现小程序授权登录功能

简单介绍:实现小程序授权登录功能

2025年03月30日 微信 我要评论
本篇文章给大家带来了关于微信小程序的相关知识,其中主要介绍了怎么实现小程序授权登录功能的相关内容,下面一起来看一下,希望对大家有帮助。【相关学习推荐:小程序学习教程】在我们平时工作、学习、生活中,微信
本篇文章给大家带来了关于微信小程序的相关知识,其中主要介绍了怎么实现小程序授权登录功能的相关内容,下面一起来看一下,希望对大家有帮助。

简单介绍:实现小程序授权登录功能

【相关学习推荐:小程序学习教程】

在我们平时工作、学习、生活中,微信小程序已成为我们密不可分的一部分,我们仔细留意下,每当我们使用一个新的小程序时,总会遇到如下页面:

87124e9520702c0a95a03b66386e57c.jpg

这便是微信小程序授权登录功能了,授权登录后,我们就可以正常使用小程序,而小程序也会获取到我们的用户权益,手机号等个人信息

授权登录功能剖析

微信小程序的授权登录具体步骤如下所示

tapd_20655371_base64_1663653456_27.png

具体实现主要有以下三个步骤:

  • 调用wx.login() 微信api获取临时登录凭证code,并回传到开发者服务器

  • 调用auth.code2session 微信api接口,获取用户唯一标识openid、 用户在微信开放平台帐号下的唯一标识unionid和会话密钥session_key

  • 通过步骤2获取的参数进行解密操作,获取用户手机号,头像等特性,并把需要的数据保存到缓存中

步骤实现代码如下:

一、获取临时登录凭证code

由于微信官方修改了getuserinfo接口,现在无法实现一进入微信小程序就会自动弹出授权窗口,所以我们只能通过button按钮让用户手动触发

我们先写一个简单的弹框,用isshow变量控制,isshow取决于步骤3中的缓存信息,当所有步骤都走通,会正确缓存用户信息,此时弹框隐藏,否则弹框都为显示状态

1665209888640.png

  <view class='wx_dialog' wx:if="{{isshow}}">
        <view class='wx_content'>
          <text>需要先授权获取个人信息</text>
          <button class="btn" open-type="getphonenumber" type="primary" bindgetphonenumber="getuserinfo">微信账号快速授权</button>
        </view>
  </view>
登录后复制

点击按钮时,调用getuserinfo方法,isshow设置为false,同时使用wx.login获取到登录凭证code

getuserinfo:e=>{      this.setdata({        isshow:false
      })

      wx.login({        success: function (res) {               let code = res.code // 登录凭证code
         }
      })
      
  }
登录后复制

二、根据登录凭证code,获取用户登录信息

拿到登录凭证code后,调用auth.code2session 微信api接口(此处为服务端操作,后端大佬搞定,我们直接调用他给的接口就好)

         wx.request({                url: 获取用户信息的auth.code2session微信api接口,                method: 'post',                data:{                  code:code//登录凭证code
                },                header: {                  'content-type': 'application/json;charset=utf-8'
                },                
                success: function (res) {                  var userphone= res.data.data                  //解密手机号
                  var msg = e.detail.errmsg;                  var sessionkey = userphone.session_key;//会话密钥
                  var encrypteddata=e.detail.encrypteddata; //签名
                  var unionid = userphone.unionid//唯一标识
                  var iv= e.detail.iv;                  //授权成功
                  if (msg == 'getphonenumber:ok') {
                    wx.checksession({                      success:function(){                        //进行请求服务端解密手机号
                        this.deciyption(sessionkey,encrypteddata,iv,unionid);
                      }
                    })
                  }
                }
              })
        }
      })
登录后复制

此时大多数用户信息我们已经获取了,但用户手机号,用户头像等信息还处于加密状态,我们需要去解密获取这些参数

三、根据用户信息,解密获取用户手机号

deciyption(sessionkey,encrypteddata,iv,unionid){    var that = this;
    wx.request({      url: 解密接口,      method: 'post',      data: {        sessionkey: sessionkey,        encrypteddata:encrypteddata,        iv: iv
      },      header: {        'content-type': 'application/json;charset=utf-8'
      },      success: function(res) {
        let data = res.data        if (data.resultcode == 'success') {
            wx.setstoragesync('usertel', data.data.phonenumber);//存储解密后的用户手机号
        }else{
            wx.showtoast({                title: '获取信息失败请重新授权',                icon: 'none'
            })
            that.setdata({                isshow:true
            })
        }    
      },
      fail:function(res) {
        wx.showtoast({            title: '获取失败请重新授权',            icon: 'none'
        })
        that.setdata({          isshow:true
        })
      }
    })
  },
登录后复制

此时授权登录功能已完成

6045b4b0db6d90284057a86181de50f.jpg

【相关学习推荐:小程序学习教程】

以上就是简单介绍:实现小程序授权登录功能的详细内容,更多请关注代码网其它相关文章!

(0)

相关文章:

  • 微信小程序指令有哪些

    微信小程序指令有哪些

    微信小程序指令有:1、“wx:for”指令,使用方法如“{{ index }} {{ item }}”;2、“wx:for-item”指令,该指令可以指定数组当... [阅读全文]
  • 微信小程序自动化部署

    本篇文章给大家带来了关于微信小程序的相关内容,其中主要介绍了微信小程序自动化部署的相关问题,日常开发微信小程序的流程是比较繁琐的,自动化部署流程可以缩减这个流程,下面一起来看一下,…

    2025年03月30日 腾讯
  • 如何获取小程序路径

    如何获取小程序路径

    获取小程序路径的方法:1、调用小程序api获取路径,可以使用wx.getstorageinfosync()方法获取小程序的本地存储路径;2、使用第三方工具获取路... [阅读全文]
  • 微信小程序中textarea与input的问题总结

    本篇文章给大家带来了关于微信小程序的相关知识,其中主要介绍了关于小程序中textarea与input的问题总结,这两个组件单独只用一个时,是没有什么问题的,但是当他们两个一起出现时…

    2025年03月30日 腾讯
  • 小程序用什么css框架

    小程序用什么css框架

    小程序可以用的css框架有weui、vant、bootstrap、ant design等等。详细介绍:1、weui,提供了丰富的组件和样式,可以帮助开发者快速构... [阅读全文]
  • 微信小程序实战项目之富文本编辑器实现

    本篇文章给大家带来了关于微信小程序的相关知识,其中主要介绍了关于富文本编辑器的实战示例,包括了创建发布页面、实现基本布局、实现编辑区操作栏的功能等内容,下面一起来看一下,希望对大家…

    2025年03月30日 腾讯

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com