个人博客上已经同步更新了文章,有目录索引,阅读起来比较方便,欢迎大家移步个人博客上读阅~

个人博客地址:http://zwd596257180.gitee.io/blog/2019/04/15/wechat_applet_login/


微信小程序之授权登录



一、前言

由于微信官方修改了 getUserInfo 接口,所以现在无法实现一进入微信小程序就弹出授权窗口,只能通过 button 去触发。官方连接:https://developers.weixin.qq.com/community/develop/doc/0000a26e1aca6012e896a517556c01


二、实现思路

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


三、界面简介

1.不带 tabBar

2.带 tabBar


四、源码

1.index.wxml

<view wx:if="{{isHide}}"><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>
</view><view wx:else><view>我的首页内容</view>
</view>

2.index.wcss


.header {margin: 90rpx 0 90rpx 50rpx;border-bottom: 1px solid #ccc;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;
}

3.index.js

Page({data: {//判断小程序的API,回调,参数,组件等是否在当前版本可用。canIUse: wx.canIUse('button.open-type.getUserInfo'),isHide: false},onLoad: function() {var that = this;// 查看是否授权wx.getSetting({success: function(res) {if (res.authSetting['scope.userInfo']) {wx.getUserInfo({success: function(res) {// 用户已经授权过,不需要显示授权页面,所以不需要改变 isHide 的值// 根据自己的需求有其他操作再补充// 我这里实现的是在用户授权成功后,调用微信的 wx.login 接口,从而获取codewx.login({success: res => {// 获取到用户的 code 之后:res.codeconsole.log("用户的code:" + res.code);// 可以传给后台,再经过解析获取用户的 openid// 或者可以直接使用微信的提供的接口直接获取 openid ,方法如下:// wx.request({//     // 自行补上自己的 APPID 和 SECRET//     url: 'https://api.weixin.qq.com/sns/jscode2session?appid=自己的APPID&secret=自己的SECRET&js_code=' + res.code + '&grant_type=authorization_code',//     success: res => {//         // 获取到用户的 openid//         console.log("用户的openid:" + res.data.openid);//     }// });}});}});} else {// 用户没有授权// 改变 isHide 的值,显示授权页面that.setData({isHide: true});}}});},bindGetUserInfo: function(e) {if (e.detail.userInfo) {//用户按了允许授权按钮var that = this;// 获取到用户的信息了,打印到控制台上看下console.log("用户的信息如下:");console.log(e.detail.userInfo);//授权成功后,通过改变 isHide 的值,让实现页面显示出来,把授权页面隐藏起来that.setData({isHide: false});} else {//用户按了拒绝按钮wx.showModal({title: '警告',content: '您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!',showCancel: false,confirmText: '返回授权',success: function(res) {// 用户没有授权成功,不需要改变 isHide 的值if (res.confirm) {console.log('用户点击了“返回授权”');}}});}}
})

关于 TabBar 的处理,只需要把上面写好的页面设置到 app.json 里面即可。

4.github 下载

https://github.com/yyzheng1729/loginDemo


五、福利:微信小程序学习视频资源分享

需要以下微信小程序项目教学视频的,可以关注下面的公众号,回复 “小程序” 即可获取百度云分享链接!如果失效的话,可以在公众号上面私信我。


六、同类文章推荐阅读

微信小程序之下拉列表实现(附完整源码)

微信小程序之侧边栏滑动实现(附完整源码)

微信小程序之首页圆形导航条

微信小程序之首页轮播图片自适应高度

微信小程序之 input 聚焦问题

微信小程序之自定义模态框

微信小程序之授权登录(附完整源码)相关推荐

  1. 微信小程序如何实现登录注册带源码

    前几天没事随手写了个小程序端的登录注册,现在分享给大家 一.登录微信前端 这是效果图与wxml代码 这是wxss代码 input{height: 100rpx; text-align: center; ...

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

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

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

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

  4. 校园跑腿微信小程序跑腿同学带直播新版源码

    校园跑腿微信小程序跑腿同学带直播新版源码 适用类型 微信小程序 测试环境:系统环境:CentOS Linux 7.6.1810 (Core).运行环境:宝塔 Linux v7.0.3(专业版).网站环 ...

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

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

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

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

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

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

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

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

  9. 微信小程序配置支付(附完整代码)

    微信小程序配置支付 1. 微信支付官网配置项 2. 代码配置(登录.获取openId.拉起支付等) 3. 云开发示例 1. 微信支付官网配置项 初次接入,商户号管理是没有数据的,需要申请接入. 如果是 ...

最新文章

  1. linux里c库和gnu c库,Linux下的C的库文件和头文件有什么区别-
  2. Acwing第 14 场周赛【完结】
  3. 声明式事务基于注解@Transactional的理解
  4. 旧版Requests库
  5. 前端学习(1269):axios的拦截器
  6. 信息学奥赛一本通C++语言——1068:与指定数字相同的数的个数
  7. 公司的计算机邮箱找不到了,找不到我现在的邮箱
  8. 数据--第46课 - 图算法课后练习
  9. axure数据报表元件库_axure图表元件库 axure自制的组件库(包括数据组件)
  10. java 补丁_java SP3补丁说明
  11. shell脚本shc加密解密
  12. QQ交谈小图标代码html,仿qq聊天工具设计源码及说明
  13. 数学建模案例--基于微分方程的酒后驾车问题浅析
  14. wordpress中解决页面未找到的问题
  15. ubuntu系统修改分辨率为2560*1440(2k,16:9)
  16. 逻辑表达式 -- 对蕴含的理解(举例更清晰、明白哦)
  17. 微信公众号开发---微信开发学习路线(及供参考)
  18. 计算机应用2010综合测试五,计算机应用基础Word2010综合测试操作步骤参考自测题步骤...
  19. 《财富》评论:盛大新游戏——陈天桥欲打造中国迪斯尼
  20. IHE注册-MOD-SWF

热门文章

  1. 库克的持续降价策略也未能拯救苹果手机!
  2. TreeMap 红黑树算法实现
  3. GIS CAD转换的第二部分
  4. js 获取元素的方式
  5. 1099 例题6-1 逆序输出数组元素
  6. HashMap扩容机制解读
  7. (附源码)计算机毕业设计SSM用户体验的线上租房系统
  8. NOIP2012 国王游戏
  9. 糟糕的开始并不会糟糕结束
  10. 导入maven项目,pom报错org.apache.maven.archiver.MavenArchiver.getManifest