用户信息功能页

用户信息功能页用于帮助插件获取用户信息,包括 openid 和昵称等,相当于 wx.loginwx.getUserInfo 的功能。

此外,自基础库版本 2.3.1 起,用户在这个功能页中授权之后,插件就可以直接调用 wx.loginwx.getUserInfo 。无需再次进入功能页获取用户信息。自基础库版本 2.6.3 起,可以使用 wx.getSetting 来查询用户是否授权过。

调用参数

用户信息功能页使用 functional-page-navigator 进行跳转时,对应的参数 name 应为固定值 loginAndGetUserInfo,其余参数与 wx.getUserInfo 相同,具体来说:

args 参数说明:

参数名类型必填说明
withCredentialsBoolean是否带上登录态信息
langString指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。默认为 en。
timeoutNumber超时时间,单位 ms

注:当 withCredentials 为 true 时,返回的数据会包含 encryptedData, iv 等敏感信息。

bindsuccess 返回参数说明:

参数类型说明
codeStringwx.login 获得的用户登录凭证(有效期五分钟)。开发者需要在开发者服务器后台调用 api,使用 code 换取 openid 和 session_key 等信息
errMsgString调用结果
userInfoOBJECT用户信息对象,不包含 openid 等敏感信息
rawDataString不包括敏感信息的原始数据字符串,用于计算签名。
signatureString使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息,参考文档 signature
encryptedDataString包括敏感数据在内的完整用户信息的加密数据,详细见 加密数据解密算法
ivString加密算法的初始向量,详细见 加密数据解密算法

userInfo 参数说明:

参数类型说明
nickNameString用户昵称
avatarUrlString用户头像,最后一个数值代表正方形头像大小(有 0、46、64、96、132 数值可选,0 代表 132*132 正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像 URL 将失效。
genderString用户的性别,值为 1 时是男性,值为 2 时是女性,值为 0 时是未知
cityString用户所在城市
provinceString用户所在省份
countryString用户所在国家
languageString用户的语言,简体中文为 zh_CN

代码示例:

  1. <!--plugin/components/hello-component.wxml-->
  2. <functional-page-navigator
  3. name="loginAndGetUserInfo"
  4. args="{{ args }}"
  5. version="develop"
  6. bind:success="loginSuccess"
  7. bind:fail="loginFail"
  8. >
  9. <button class="login">登录到插件</button>
  10. </functional-page-navigator>
  1. // plugin/components/hello-component.js
  2. Component({
  3. properties: {},
  4. data: {
  5. args: {
  6. withCredentials: true,
  7. lang: 'zh_CN'
  8. }
  9. },
  10. methods: {
  11. loginSuccess: function (res) {
  12. console.log(res.detail);
  13. },
  14. loginFail: function (res) {
  15. console.log(res);
  16. }
  17. }
  18. });

用户点击该 navigator 后,将跳转到如下的用户信息功能页:

用户信息功能页

在微信开发者工具中查看示例

  1. 由于插件需要 appid 才能工作,请填入一个 appid;
  2. 由于当前代码片段的限制,打开该示例后请 手动将 appid 填写到 miniprogram/app.json 中(如下图)使示例正常运行。

手动填写 appid