前言:由于微信官方修改了 getUserInfo、authorize 接口,无法弹出授权窗口,所以现在无法实现一进入微信小程序就弹出授权窗口,只能通过 button 去触发

1.实现思路

微信授权登录仅适用于使用微信用户信息的用户,如果自己的项目有完善的用户信息(一套式开发项目),可不使用微信用户信息;如果仅为微信小程序,则要授权、获取用户信息

自己写一个微信授权登录页面让用户实现点击的功能,也就是实现了通过 button 组件去触发 getUserInof 接口。在用户进入微
信小程序的时候,判断用户是否授权了,如果没有授权的话就显示下面“界面简介”的第一个图,让用户去执行授权的操作。如
果已经授权了,则直接跳过这个页面,进入首页。

2.界面简介

3.源码

authorize.html

<view wx:if="{{canIUse}}"><view class='header'><image src='/images/wx_login.png'></image></view><view class='content'><view>申请获取以下权限</view><text>获得你的公开信息(昵称,头像等)</text></view><button class='bottom' type='primary' open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="bindGetUserInfo">授权登录</button>
</view><view wx:else>请升级微信版本</view>

authorize.wxss

.header {margin: 90rpx 0 90rpx 50rpx;text-align: center;width: 650rpx;height: 300rpx;line-height: 450rpx;
}.header image {width: 200rpx;height: 200rpx;
}.content {margin-left: 50rpx;margin-bottom: 90rpx;
}.content text {display: block;color: #9d9d9d;margin-top: 40rpx;
}.bottom {border-radius: 80rpx;margin: 70rpx 50rpx;font-size: 35rpx;
}

authorize.json

{"navigationBarTitleText": "授权登录"
}

authorize.js

const app = getApp();
Page({data: {//判断小程序的API,回调,参数,组件等是否在当前版本可用。canIUse: wx.canIUse('button.open-type.getUserInfo')},onLoad: function () {var that = this;// 查看是否授权wx.getSetting({success: function (res) {if (res.authSetting['scope.userInfo']) {wx.getUserInfo({success: function (res) {//从数据库获取用户信息that.queryUsreInfo();//用户已经授权过wx.switchTab({url: '/pages/index/index'})}});}}})},bindGetUserInfo: function (e) {if (e.detail.userInfo) {//用户按了允许授权按钮var that = this;//插入登录的用户的相关信息到数据库wx.request({url: app.globalData.urlPath + 'user/add',data: {openid: getApp().globalData.openid,nickName: e.detail.userInfo.nickName,avatarUrl: e.detail.userInfo.avatarUrl,province:e.detail.userInfo.province,city: e.detail.userInfo.city},header: {'content-type': 'application/json'},success: function (res) {//从数据库获取用户信息that.queryUsreInfo();console.log("插入小程序登录用户信息成功!");}});//授权成功后,跳转进入小程序首页wx.switchTab({url: '/pages/index/index'  })} else {//用户按了拒绝按钮wx.showModal({title:'警告',content:'您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!',showCancel:false,confirmText:'返回授权',success:function(res){if (res.confirm) {console.log('用户点击了“返回授权”')} }})}},//获取用户信息接口queryUsreInfo: function () {wx.request({url: app.globalData.urlPath + 'user/userInfo',data: {openid: app.globalData.openid},header: {'content-type': 'application/json'},success: function (res) {console.log(res.data);getApp().globalData.userInfo = res.data;}});},})

代码的 wx.request 是小程序发起网络请求,用于用户与数据的交互。官网地址:https://developers.weixin.qq.com/miniprogram/dev/api/network-request.html
URL分析:app.globalData.urlPath(全局url;例如:https://www.baidu.com)
user/userInfo(接口具体地址)

小程序源码地址:https://github.com/cuigeg/wxchat.git

拓展

安利一下,微信小程序什么情况下需要授权:

授权代码:

注意:wx.authorize({scope: “scope.userInfo”}),无法弹出授权窗口,请使用 <button open-type="getUserInfo"></button>

wx.getSetting({success(res) {if (!res.authSetting['scope.record']) {wx.authorize({scope: 'scope.record',success() {// 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问wx.startRecord()}})}}
})

如果此篇博客对您或者您的朋友有帮助,请予以收藏或者转发,感谢您的查看,始终信仰:每一次分享都会帮助一些采坑中的道友,爱分享,能让道友时候踩一个坑是我们的幸福,
如果有什么不对的地方,请于评论区提示,及时发现问题解决问题会让我们进步更快,谢谢
参考文章地址:https://blog.csdn.net/weidong_y/article/details/79636386

微信小程序之授权登录的实现(button按钮)相关推荐

  1. 微信小程序之授权登录

    微信小程序之授权登录 之前微信授权登录时是直接可以通过getUserInfo接口 弹出授权弹窗.由于微信官方修改了 getUserInfo 接口,所以现在无法实现一进入微信小程序就弹出授权窗口,只能通 ...

  2. 微信登录 后台 java_Java 后端 (Spring boot)+微信小程序的授权登录

    微信小程序的授权登录 第一.Java后端代码如下 登录的接口的参数是微信小程序前端必须要传的参数微信小程序登录.授权的用户基本信息 wx.getUserInfo 特别注意 appid 和secret. ...

  3. 微信小程序之授权登录(附完整源码)

    个人博客上已经同步更新了文章,有目录索引,阅读起来比较方便,欢迎大家移步个人博客上读阅~ 个人博客地址:http://zwd596257180.gitee.io/blog/2019/04/15/wec ...

  4. 微信小程序之授权登录--项目需要

    1.由于项目需要,需要实现自己的微信小程序 用微信授权登录. 2.参考此项目https://blog.csdn.net/weidong_y/article/details/79636386 3.其中的 ...

  5. 企业微信小程序_授权登录接口获取用户userid

    文章目录 一.前置知识 1. 阅读 企业微信小程序开发文档 2. 企业微信小程序登录流程 3. 微信小程序区别 二.前端部分 2.1. 调用登录接口 2.2. 请求后端接口 2.3. 项目源码 三.后 ...

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

    文章目录 小程序端 服务端 注意事项 微信小程序,手机号授权登录需求. 大体流程是这样的: 小程序端使用 getPhoneNumber 向微信平台获取授权 通过微信授权后,小程序端接收微信授权后的回调 ...

  7. 微信小程序的授权登录功能

    注意:首先微信小程序是不能一进入小程序就让用户授权登录的,一进入小程序就让用户授权登录,是审核不通过的: 图一的这个提示框是我自己写的:要想弹出微信的微信授权提示框,必须用一个按钮来触发,可用授权登录 ...

  8. 【Springboot】整合wxjava实现 微信小程序:授权登录

    文章目录 一.wxjava是什么 二.使用步骤 1.引入依赖 2.配置yml 3.小程序的配置 4.后端的业务逻辑代码 controller service impl dto 5.前端的业务逻辑代码 ...

  9. 微信小程序手机号+授权登录

    wxml页面 <view class="input-container"><view class="input-button-container row ...

  10. 微信小程序+PHP 授权登录

    小程序页面代码 <!--pages/wxlogin/wxlogin.wxml--> <button bindtap="wxlogin">微信授权登录< ...

最新文章

  1. Miller方法产生、检验素数
  2. python找人脚本_女朋友最近天天加班,用python写个定位脚本,直接抓到现场
  3. LeetCode 289. Game of Life--Java,Python解法
  4. matlab画图(复数的直角坐标和极坐标)(-)
  5. 平移不变性:Translation Invariance 与 平移同变性:Translation equivariance
  6. 关于引进制转换(凌乱)
  7. DSP 的双缓冲串口程序设计
  8. InvocationHandler的invoke方法如何被调用?
  9. Python【01】【基础部分】- A
  10. 神奇!一行代码实现删除某集合下标20-30的元素
  11. 利用命令来打开所有程序,这个装逼给满分!
  12. 吴恩达作业11:残差网络实现手势数字的识别(基于 keras)+tensorbord显示loss值和acc值
  13. 小艾k个人发卡网PHP源码
  14. 文件传输-对数据进行加解密的方法!
  15. java实现客服转接_Java微信公众平台开发(9) 关键字回复以及客服接口实现
  16. 用计算机制作个人简历图片,计算机应用基础制作个人简历.ppt
  17. DOS批处理命令之echo和@命令
  18. SpringBoot里参数校验/参数验证
  19. 分享一个项目平台原型图
  20. android 开启闪光灯(手电筒)

热门文章

  1. 最新的软著自助免费申请教程!
  2. win10 企业版2016长期服务激活教程
  3. 黑白棋——C语言设计
  4. 什么是邮箱地址,电子邮箱地址大全 163vip邮箱都有哪些地址?
  5. Linux内核的WRITE_ONCE函数分析
  6. 大写汉字转阿拉伯数字c语言,使用C#实现阿拉伯数字到大写中文的转换
  7. 英特服务器的spec整数性能,主流基准测试TPC与SPEC解读
  8. 2021-11-17每日刷题打卡
  9. PS:动图加文字(二)
  10. php dth网络节点,基于 DHT 网络的磁力链接和BT种子的搜索引擎架构