微信小程序如何获取用户信息

本文详细介绍了微信小程序获取用户基本信息的流程,包括wx.getUserProfile的使用,openId与UnionId的区别,以及如何利用session_key进行数据校验。用户信息包括头像、昵称等7项明文数据,而openId和UnionId是加密数据。session_key用于防止数据篡改,通过比对signature和sha1(rawData+sessionkey)来校验。同时,文章还讨论了在服务器端进行数据校验的两种策略。

自我介绍

我是IT果果日记,微信公众号请搜索 IT果果日记
一个普通的技术宅,定期分享技术文章,欢迎点赞、关注和转发,请多关照。
  • 微信小程序用户基本信息有哪些?

  • 除了基本信息,微信还会提供openId和unionId,它们有什么作用和区别?

  • 在获取用户信息的过程中,如何知道明文数据是否被篡改了?

  • session_key 该如何使用呢?

带着这些问题,我们开始今天的学习。

获取用户基本信息

小程序提供了一个 wx.getUserProfile(OBJECT) 方法来获取用户的信息。以前的老版本是用的 wx.getUserProfile(OBJECT) 方法,现在以及被官方不推荐使用了。

用户信息分为用户基本信息和用户openId、UnionId。基本信息是明文的,而openId和UnionId是加密数据。这两种类型的数据都由wx.getUserProfile(OBJECT)方法返回。

用户基本信息包括以下7项:

  • avatarUrl 用户微信头像的URL地址。

  • city 城市。

  • country 国家。

  • gender 性别,1表示男,2表示女,0表示未知。

  • language 语言区域。

  • nickName 昵称。

  • province:省份。

在小程序中,用户的基本信息可以轻易获得,他们是明文的、不加密的。但 openId UnionId 是加密的。什么是openId和UnionId呢?可以将openId和UnionId理解为用户在微信应用中的id号。

他们的区别是:

  • openId只代表用户在某个微信应用下的id号;

  • 而UnionId是跨应用的,同一用户在同一开发者的多个应用里,UnionId是唯一的。

官方文档对于UnionId的描述非常清楚:如果开发者拥有多个移动应用、网站应用和公众账号(包括小程序),可通过UnionId区分用户的唯一性,因为只要是同一个微信开放平台账号下的移动应用、网站应用和公众账号(包括小程序),用户的UnionId就是唯一的。换句话说,同一用户在同一个微信开放平台下的不同应用中,UnionId是相同的。

所以,openId不能跨应用,如果要在多应用间统一用户身份,请使用UnionId。这里要注意,在小程序中使用UnionId首先需要前往微信开放平台绑定小程序。请参考官方文档:

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html

微信开放平台绑定小程序流程

登录

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT果果日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值