微信小程序授权页面

微信小程序授权页面,效果图如下

app.js  中的 onLaunch或onShow中加如下代码,如果没授权跳转到授权页面

    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting[‘scope.userInfo‘]) {
          // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
          wx.getUserInfo({
            success: res => {
              // 可以将 res 发送给后台解码出 unionId
              this.globalData.userInfo = res.userInfo

              // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }else{
          // 未授权,跳转到授权页面
          wx.reLaunch({
            url: ‘/pages/auth/auth‘,
          })
        }
      }
    })

auth.wxml 授权页面结构

<view class="auth">
  <image src="https://res.wx.qq.com/wxopenres/htmledition/images/favicon32f740.ico" class="img" mode="aspectFill"></image>
  <view class="title">微信授权页面</view>
  <view class="describe">此页面是微信授权页面,点击下方按钮弹出授权或跳转页面</view>
  <button class="btn" open-type=‘getUserInfo‘ wx:if="{{canIUse}}" bindgetuserinfo=‘onAuth‘>点击微信授权</button>
  <navigator wx:if="{{!canIUse}}" class="btn" url="/pages/auth/auth" open-type="reLaunch" hover-class="other-navigator-hover">已经授权点击调转</navigator>
</view>

auth.wxss  授权页面样式

/* 开始 */
page {
  height: 100%;
  display: table;
}

.auth {
  margin-top: 0;
  text-align: center;
  display: table-cell;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  padding: 100rpx;
  vertical-align: middle;
}

.img {
  border-radius: 50%;
  border: 1px solid #fff;
  background-color: #fff;
  margin: 0 0 60rpx;
  display: inline-block;
  width: 200rpx;
  height: 200rpx;
  line-height: 0;
}

.title {
  display: inline-block;
  width: 100%;
  margin: 0 0 60rpx;
}

.describe {
  color: #a7aaa9;
  font-size: 26rpx;
  margin: 0 0 60rpx;
  border-radius: 50%;
  text-align: center;
  display: inline-block;
  width: 100%;
}

.btn {
  padding: 0 60rpx;
  background-color: #19be6b;
  margin: 20rpx 0 200rpx;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  white-space: nowrap;
  user-select: none;
  font-size: 14px;
  border: 0 !important;
  position: relative;
  text-decoration: none;
  height: 44px;
  line-height: 44px;
  box-shadow: inset 0 0 0 1px #19be6b;
  background: #fff !important;
  color: #19be6b !important;
  display: inline-block;
  border-radius: 10rpx;
}

auth.js  授权页面js,点击授权后跳转到首页

var app = getApp();
Page({
  data: {
    canIUse: wx.canIUse(‘button.open-type.getUserInfo‘)
  },
  onAuth() {
    wx.getSetting({
      success: (res) => {
        if (res.authSetting[‘scope.userInfo‘]) {
          wx.reLaunch({
            url: ‘../index/index‘,
          })
        }
      }
    })
  }
})

==============================================

本文链接 https://www.cnblogs.com/stumpx/p/9225323.html

==============================================

原文地址:https://www.cnblogs.com/stumpx/p/9225323.html

时间: 2024-11-01 13:20:30

微信小程序授权页面的相关文章

完整微信小程序授权登录页面教程

完整微信小程序授权登录页面教程 1.前言 微信官方对getUserInfo接口做了修改,授权窗口无法直接弹出,而取而代之是需要创建一个button,将其open-type属性绑定getUseInfo方法.在参考了网路上各种方案之后,实现了用户在授权之后跳转到小程序首页的授权登录页面. 2.实现效果 3.实现思路 在进入小程序时先对授权情况进行判断,若已经过授权则直接跳转到首页,若还未经过授权则进入授权页面,点击页面的授权按钮会弹出选择框,选择"拒绝"则不进行跳转,选择"允许&

微信小程序 授权登录详解(附完整源码)

一.前言 由于微信官方修改了 getUserInfo 接口,所以现在无法实现一进入微信小程序就弹出授权窗口,只能通过 button 去触发. 官方连接:https://developers.weixin.qq.com/community/develop/doc/0000a26e1aca6012e896a517556c01 二.实现思路 自己写一个微信授权登录页面让用户实现点击的功能,也就是实现了通过 button 组件去触发 getUserInof 接口.在用户进入微信小程序的时候,判断用户是否

微信小程序之页面拦截器

场景 小程序有52个页面,其中13个页面无需任何身份,另外39个页面需要系统角色.对于这39个页面,如果微信用户没有系统角色,则跳转到登录页.是否有系统角色信息需要通过异步请求来获取. 需求分析&实现 对需求进行抽象,其实要的就是一个过滤器,对小程序页面的访问进行过滤,符合条件的通过,不符合条件进行其他处理. 使用过php的laravel框架的童鞋,肯定一下子就联想到了laravel框架的http中间件:HTTP 中间件提供一个方便的机制来过滤进入应用程序的 HTTP 请求,例如,Laravel

微信小程序之页面跳转

如今 微信小程序已经充满的我们的生活,那么今天我就来说一说微信小程序中的最基础的 页面跳转 1. wx.navigateTo(保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面.) 简单点说,有两个页面 分别为页面A,页面B ,你想要从页面A 跳转到页面B 就可以在页面A使用这个方法 wx.navigateTo({ url: '../pages/B' }) 当然这是不穿参数的 只是单纯的跳转页面若想要传参的话 可以用"?+id=123&&na

微信小程序之页面打开数量限制

无论是在小程序还是APP中,打开一个页面其实就是创建了一个新的View对象,一层层叠加的.当点击页面的回退按钮就是把当前页面关闭. 这个过程中会涉及到一个问题,就是打开页面的数量.在某些设计下,比如一个商品详情页面中会推荐其他的商品,这些商品点进去就是详情页面.详情页面中又有推荐,又可以点进去.这样重复下去打开的页面就会越来越多. 如果不做限制,当打开数量到一定程度的时候肯定会卡死了.在微信小程序中打开的页面不能超过10个,达到10个页面后,就不能再打开新的页面. 之前出现这个问题,还以为是Bu

浅谈微信小程序实现页面数据显示

前段时间公司需要一个小程序去实现某项简单的功能,本来作为一个后台人员,只需要完成数据接口和文档部分就可以了: 后来对这小程序好奇再加上文档蛮完整的,然后抽了好几天时间去研究了一下,不多说了.. 1.首先来看简单的目录结构: 2.下面是app.json 需要注意的地方: 3.接着是index页面的数据 4.最后是index页面效果 好了,简单的第一步已经完成了.

微信小程序的页面跳转

小程序页面的跳转: 先创建页面toolbar,并在app.json里面pages写上路径 "pages":[    "pages/index/index",    "pages/logs/logs",    "pages/toolbar/toolbar"  ], 然后写在页面中添加按钮,然后添加事件, <button type="primary" bindtap="start"&g

吐血记录微信小程序授权获取Unionid及linux下使用bouncycastle解密用户数据 遇到的坑

背景 公司小程序上线了,发现系统无法拿到一些用户的UniondID.但是上线前的测试一切都是正常的. 坑1 经排查,发现一些用户通过下面的接口无法得到unionid https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code 阅读https://developers.weixin.qq.com/miniprogr

微信小程序授权认证 操作

1.wx.getSetting获取用户的当前设置.返回值中只会出现小程序已经向用户请求过的权限 2.根据scope信息匹配已经授权过的会自动获取之前信息 3. wx.authorize 在调用需授权 API 之前,提前向用户发起授权请求 具体文档查看:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/authorize.html#scope-%E5%88%97%E8%A1%A8 如果用户拒绝了授权  需