专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

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

来源:小易整编  作者:小易  发布时间:2024-03-19 08:17
摘要:本篇文章给大家带来了关于微信小程序的相关知识,其中主要介绍了怎么实现小程序授权登录功能的相关内容,下面一起来看一下,希望对大家有帮助。【相关学习推荐:小程序学习教程】在我们平时工作、学习、生活中,微信小程序已成为我们密不可分的一部分,我们仔...

本篇文章给大家带来了关于微信小程序的相关知识,其中主要介绍了怎么实现小程序授权登录功能的相关内容,下面一起来看一下,希望对大家有帮助。

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

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

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

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

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

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

                    需要先授权获取个人信息                    
登录后复制

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

getUserInfo:e=>{      this.setData({        isShow:false      })      wx.login({        success: function (res) {               let code = res.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        })      }    })  },
登录后复制

此时授权登录功能已完成

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

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


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/1150762.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • 用U盘轻松实现一键重装系统的小白装机教程

    用U盘轻松实现一键重装系统的小白装机教程

    在现代社会,电脑已经成为人们生活中不可或缺的工具。然而,由于各种原因,我们有时候需要重装电脑系统来解决一些问题或提升性能。但是,对于一些小白用户来说,重装系统可能是一项困难的任务。因此,本文将介绍一款小白一键重装系统的u盘装机教程,帮助小白...

  • 总结CreateJS的详细介绍

    总结CreateJS的详细介绍

    CreateJS库是一款HTML5游戏开发的引擎,是一套可以构建丰富交互体验的HTML5游戏的开源工具包,旨在降低HTML5项目的开发难度和成本,让开发者以熟悉的方式打造更具现代感的网络交互体验。掌握了CreateJS可以更方便的完成HTM...

  • PHP调用美联软通短信接口实现短信发送

    PHP调用美联软通短信接口实现短信发送

    随着人们生活水平的提高和科技的发展,短信已成为人们交流的主要方式之一,越来越多的企业开始通过短信平台来实现营销、提醒等功能。在这个过程中,短信接口的选择显得尤为重要。本文将介绍如何通过php调用美联软通短信接口实现短信发送。一、美联软通短信...

  • php怎么实现对字符串的排序

    php怎么实现对字符串的排序

    实现步骤:1、利用str_split()函数将字符串转为字符数组,语法“str_split(字符串)”;2、使用asort()或arsort()函数来对字符数组进行升序排序或降序排序,语法“asort(字符数组)”或“arsort(字符数组...

  • python怎么实现三子棋游戏

    python怎么实现三子棋游戏

    一、基本流程三子棋游戏实现逻辑如下:1、创建初始化3*3棋盘;2、玩家执U子,先进行落子;3、胜负判定【胜、负、和棋】,若胜负未分,则继续如下4、电脑执T子,进行落子;5、胜负判定,若胜负未分,则从步骤2继续执行二、基本步骤1、菜单界面选择...

  • CSS颜色设置方法:HEX、RGB、HSL的简单对比

    CSS颜色设置方法:HEX、RGB、HSL的简单对比

    css中,颜色值有多种表示方法,例如颜色名、十六进制颜色、rgb()、hex()、hsl()等等。那你知道hex、rgb和hsl之间有什么区别吗?下面本篇文章就来给大家简单对比一下hex、rgb、hsl,看看它们区别。不知道你是否了解HE...

  • touch bar是什么功能

    touch bar是什么功能

    “touchbar”指的是触控栏功能,是“macbookpro”最上方的小型显示屏;“touchbar”用于调整亮度、大小、快进后退等快捷操作,以及各种应用的定制操作,能够弥补全屏模式下对菜单栏的遮盖。本教程操作环境:macOS12...

  • 什么是结构化程序设计

    什么是结构化程序设计

    结构化程序设计是一种使程序更加清晰、易于理解和维护的编程方法论。通过将程序划分为不同的模块,并使用控制结构来组织这些模块,结构化程序设计使程序的开发和维护更加高效和可靠,无论是初学者还是有经验的开发者,都应该掌握结构化程序设计的基本原理和技...

  • 周排行
  • 月排行
  • 年排行

精彩推荐