# 开发 \| 第一次打开小程序，用户拒绝登录授权怎么办？

- 作者：知晓程序
- 发布时间：2017-07-14 18:00
- 原文：https://www.ifanr.com/minapp/871916

![](https://s3.ifanr.com/wp-content/uploads/2017/07/minapp-dev-final-feature.jpg)

**知晓程序注：**

现在，有不少小程序都加入了「微信登录」功能，它可以便于用户直接使用微信帐户登录小程序，免去了用户需要额外注册、登录的麻烦。

但在现实中，**许多用户都会有意无意「拒绝」了小程序请求登录的权限**，导致用户无法正常使用小程序。

知晓程序（微信号 zxcx0101）本期带来的文章，会告诉你如何正确处理用户拒绝授权的情况。

---

文 \| charliesong

大多数小程序的登录界面，都是这样设计的：

![](https://s3.ifanr.com/wp-content/uploads/2017/07/minapp-auth-5.jpg)

这些小程序，在用户一进来就会提示需要授权。**有部分人可能就会点「拒绝」，而且这部分用户的比例可能超出我们的预估。**

在用户后续操作的时候，**点击拒绝的用户可能就无法正常使用小程序了**。而且，小程序会缓存一段时间用户的授权数据，询问后的一段时间内会默认拒绝权限，不再弹出授权登录的页面。

这时候，用户只能删除小程序，重新启动、允许授权才能继续操作。

![](https://s3.ifanr.com/wp-content/uploads/2017/07/minapp-auth-6.jpg)

我觉得，好的体验方式是：**在必须需要用户授权登录的页面或操作（比如支付，创建表单）的时候，再提醒用户需要登录**。

如果用户还是点「拒绝」，**我们再向用户提示「必须授权登录之后才能继续操作」，请求用户开启相应权限**。

以「制作器」小程序中，必须要求用户登录的「我的钱包」页面为例，我们来聊聊如何做到这一点。

```
if (!user) {
  wx.login({
    success: function (res) {
      var code = res.code;
      wx.getUserInfo({
        success: function (res) {
          // 当用户授权成功的时候，保存用户的登录信息
        },
        fail: function (res) { //用户点了“拒绝”
          wx.showModal({}) // 向用户提示需要权限才能继续
          wx.openSetting({
            success: (res) = & amp;gt; {
              if (res.authSetting["scope.userInfo"]) {} // 如果成功打开授权
              else {} // 如果用户依然拒绝授权
            },
            fail: function () { //调用失败，授权登录不成功
              fail()
            }
          })
        }
      })
    }
  })
}
```

在「我的钱包」页面，我们可以这样来调用登录逻辑：

```
var that = this
api.login(function (user) {
  //登录成功
  wx.showNavigationBarLoading()
  wx.showToast({
    title: 'Loading……',
    duration: 5000,
    icon: 'loading'
  })
  api.getUserInfo(function (res) {
        //根据用户资料，获取该用户的余额信息并显示
        wx.hideToast()
        wx.hideNavigationBarLoading();
      }
    },
    function () {
      //没有获取到用户信息，登录失败
    }
})
```

这样做之后，当用户进入「我的钱包」页面，就是这样了（如果用户已经登录过，就会直接显示内容）：

![](https://s3.ifanr.com/wp-content/uploads/2017/07/minapp-auth-7.jpg)

原文地址：http://www.jianshu.com/p/592c60e94e3a

![](http://wxlayout.b0.upaiyun.com/1u66ex7omtylajdy994o863vq00ikwz1)

「制作器」小程序使用链接  
[https://minapp.com/miniapp/3501/](https://minapp.com/miniapp/2418/)

**关注「知晓程序」公众号，在微信后台回复「带参二维码」，获取小程序取得带参数小程序码的方法。**

![zxcx&#95;0208](https://s3.ifanr.com/wp-content/uploads/2017/02/zxcx_0208.png)
