微信里的“授权”到底是几个意思?

AI时代,如何更快入行抢占红利得高薪?前阿里巴巴产品专家带你15天入门AI产品经理。了解一下>

不同场景下的“授权”到底意味着什么?一起来看看~

作为普通用户,在使用微信的过程中,我们经常会看到各种“授权”,体验着当领导的感觉的同时,也会担心自己的隐私是否会暴露的问题。并且,即使是互联网从业者,也未必都能搞清楚这些“授权”到底是什么意思。那么下面我们就来看看,不同场景下的“授权”到底意味着什么。

为了更清晰地理解“授权”,有必要先讲一下微信里的 openid。其实很多其他平台也有类似的东西,你可以理解为在微信的各个产品里,唯一标识用户的一串字符串,即你在这个产品里唯一的身份证。这个产品可能是公众号,也可能是小程序。后面讲到的几个场景,都是可以在你无感知的情况下拿到这个 openid 的,用来保存你在这个应用中的数据。

所以 openid 本身并不包含什么敏感信息,但是如果这个应用本身保存其他信息的时候,也用 openid 作为用户的唯一标识,那么,当别人知道你的 openid 的时候就有可能会关联到你的信息。当然,除此之外,一般的应用都会有其他的身份校验机制,不在讨论范围。我们还是说回几种“授权”的含义和使用。

1. 个人用户:小程序授权

前面有提到,这种情况就是默认可以拿到 openid 来标识用户的。同时还会为用户分配一个 session key,有效期只有 5 分钟,这也是一种身份校验的方式。避免单独拿到 openid 就可以获取其他信息的风险。此外,在解密用户信息和手机号等数据时,也会用到 session key。

小程序里的授权,具体表现是,弹窗请求允许使用某些功能,比如授权获取用户信息、授权获取手机号等,标题会显示“微信授权”:

如果你选择拒绝,那应用程序就什么都拿不到,很棒吧。但是有的同学可能会发现,我好像没有点这个弹窗,为什么也能看到我的头像昵称呢?

不要慌,这里其实使用了微信官方的组件展示的,而应用的开发者并没有实际拿到你的昵称头像信息,只是把你自己的信息展示给你自己看而已。

<open-data type=”userAvatarUrl”></open-data>

<open-data type=”userGender” lang=”zh_CN”></open-data>

具体小程序可以请求使用的能力,如下表所示:

那么授权能否取消呢?能。在 小程序主界面右上角 … → 关于某某某小程序→ 右上角 … → 设置 → 允许“某某某” ,手动关掉相关设置即可,但是你的昵称头像其实服务器端已经保存了。这里只是禁止再次获取而已,比如你最新更换的头像,他们就拿不到了。

2. 个人用户:服务号网页授权

当我们在微信里打开某些网页时,可能会看到这种授权的弹窗。提示某个服务号请求你的授权。同样,服务号的静默授权可以拿到用户的 openid,这个 openid 跟前面的 openid 意义是一样的。但是 openid 是相对于某个小程序或服务号而言的唯一标识,比如这个 openid 跟刚才小程序那个 openid 拿到的值肯定是不一样的。openid 不是你在微信里全局的 ID。

同样,如果不授权,这个网页或者说是应用就无法拿到你的昵称头像等信息,就无法展示你的昵称头像,甚至直接不让你用了。

这个能否取消呢?不能,但是会过期。然而,你的昵称头像都已经被保存了,这个取消授权其实也没什么意义。

除了获取用户信息外,你可能还会遇到有的网页要求获取你的地理位置,或者获取录音功能等。表现上是一样的弹窗,只是功能列表不同而已。这些授权,在后面提到的授权管理界面,是可以关掉的。

3. 个人用户:微信登录授权

有些网站应用或者 APP,允许你自己的微信号通过PC扫码登录,或者 APP 跳转的方式,使用微信登录第三方 APP 或应用。在微信的 我 → 设置 → 隐私 → 授权管理,里面可以看到你授权微信登录的所有应用,以及应用能获得的能力,并且可以随时关掉。

这个使用微信登录并不会暴露你微信本身的账号密码给第三方,而是通过一种授权验证的方式,由微信来对接你和第三方的用户体系。所以不用担心微信账号本身的安全问题。不过其他的功能可能就要仔细辨别隐私问题了。

比如你授权了录音功能,那么使用这个 APP 期间就可能在你不知情的情况下录音,不过一般手机在调用硬件时都会有强制的提示,比如任务栏图标等,所以这个还好;再比如授权了朋友关系的应用,就可以向你的好友展示你在这个应用中的状态,比如正在看小黄图啥的~ 至于这个到底算不算隐私,还是你自己说了算。

4. 公众号/小程序所有者:授权第三方平台

这里的第三方平台可以理解为在微信开放平台实现的应用,目的是让公众号或小程序运营者在面向垂直行业需求时,可以通过一键登录授权给第三方开发者,来完成相关能力。

具体授权表现为,当你使用某个类似“微信公众号管理后台”的服务时,系统会提示你使用公众号或小程序的管理员微信号扫码授权,选择允许授权到第三方平台的能力。授权之后,公众号的这里能力将由第三方平台托管。

这里要特别注意权限列表,所有权限都授权的时候,几乎相当于完全把你的服务号或者小程序交给平台打理了。平台可以替你发信息,替你回复用户,替你管理用户删除用户等等。所以,如果要授权给第三方平台,一定确保是值得信赖的平台,否则你的帐号很可能会被滥用,比如发布不良信息,导致封号等等。

顺便提一句,同样道理,微博授权登录也是如此。如果授权的能力里包含发微博,那么这个应用就可以在任何时候用你的帐号发一条微博。记得之前某装修平台就是,你只要在 APP 里看了几张图,它就自动发一条非常恶心的广告微博,而且我完全不知情。你的粉丝会以为你要么中毒了,要么就在收钱打广告。

综上,即便是在微信场景下,“授权”也包含了很多种情况。所以无论是普通用户交流,还是产品需求沟通,都应该明确指出,我当前说的到底是哪种授权,这样才能使沟通更加顺畅。

 

作者:姬小光,微信公众号“姬小光(ID:hi-laser)”

本文由 @姬小光 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来源于网络

给作者打赏,鼓励TA抓紧创作!
4人打赏
评论
欢迎留言讨论~!
  1. 静默登录是否可以获取open及用户昵称用户头像呢?

    回复
  2. 微信授权的具体数据流可以说说吗?

    回复
    1. OAuth2.0 鉴权的流程都一样的,这里有个简单的时序图:https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html

      回复
    2. 好的,非常感谢

      回复
    3. 不客气

      回复
  3. 用户信息包含哪些,只有昵称和头像吗?

    回复
    1. 见下面回答 @产品范 同学的,有例子。

      回复
  4. 静默授权一定需要弹窗提示用户吗?如果只要获取用户的openid,是不是可以直接拿到,不用弹窗

    回复
    1. 既然叫静默授权,当然用户是无感知的啦~ 但是细心的你可能会发现进度条的跳转过程,可以说基本无感知。

      回复
  5. 请问授权朋友关系给小程序,是在哪一步完成的?

    回复
    1. 没有询问用户,腾讯系的都有,还有小游戏也有这个能力。

      回复
  6. 授权了很多(几乎不计其数)第三方应用的登录,在微信授权管理页面里并没有看到呢

    回复
    1. 感觉权限管理中的可管理的应用 都是腾讯系的~

      回复
    2. 第三方应用微信扫码登录本身没有获取你的更多信息,只是标识用户。但是微博什么的,登录时候会展示使用了你哪些信息和能力。

      回复
    3. 顺便咨询一下,联合登录和授权登录,主要什么区别

      回复
    4. 你的联合登录是指?其实不管什么登录,本质上就是拿个 ID 可以标识用户而已,最后的目的没什么区别。

      回复
  7. 如果用户关注了公众号,是不是就能拿到昵称头像等信息,就不用授权?

    回复
    1. 你都关注人家了,微信管理后台都能看到你的昵称头像了。通过会话消息获取用户基本信息的,还包括省市等扩展信息,但是要求微信认证,所以个人的订阅号基本就不能搞了,公司的认证过的可以。这里是用户信息例子,来自官方文档:

      {
      “subscribe”: 1,
      “openid”: “o6_bmjrPTlm6_2sgVt7hMZOPfL2M”,
      “nickname”: “Band”,
      “sex”: 1,
      “language”: “zh_CN”,
      “city”: “广州”,
      “province”: “广东”,
      “country”: “中国”,
      “headimgurl”:”http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0″,
      “subscribe_time”: 1382694957,
      “unionid”: ” o6_bmasdasdsad6_2sgVt7hMZOPfL”
      “remark”: “”,
      “groupid”: 0,
      “tagid_list”:[128,2],
      “subscribe_scene”: “ADD_SCENE_QR_CODE”,
      “qr_scene”: 98765,
      “qr_scene_str”: “”
      }

      回复