【拓展】理解AppID、OpenID、UnionID

5.png



历史背景

基本概念介绍 | 微信开放文档
微信小程序:一文彻底搞懂openid和unionid-腾讯云开发者社区-腾讯云
用户进行小程序登陆时,需要获取用户信息,但是不能和原有的微信账号体系一致,这会导致用户原本的信息泄露,于是需要设计一套新的权限模式。

AppID

1.png

  • AppID 是微信应用的标识符,每个微信应用都有一个唯一的AppID,针对开发者维度
  • 它是开发者在微信开放平台注册应用时由微信分配的,用于标识应用的身份,在调用微信API时,通常需要提供AppID来验证开发者的身份
  • 但是我们协作开发的时候,通过管理员通过微信号添加协作者进行开发,这样可以利用主AppID进行开发

AppSecret

51b6e0bcc165904f6a232b3b3db62286

  • 微信小程序的 AppSecret(小程序密钥)是微信开放平台提供给开发者的一种安全机制,用于保护小程序的数据安全和验证开发者身份。
  • 具体可以进行:身份验证、获取 access_token、数据加密、服务器间通信、数据安全等

OpenID

  • OpenID 是微信用户的标识符,每个用户在每个应用中都有一个唯一的OpenID,区分不同应用中的用户身份
  • 当用户首次使用微信登录某个应用时,应用会获取到该用户的OpenID,同一个用户在不同的应用中的OpenID是不同的,这样可以保护用户的隐私

UnionID

  • UnionID 是微信用户的统一标识符,同一个微信开放平台下的不同应用,UnionID 是相同的
  • 它是为了方便开发者管理用户身份而设计的,这样如果用户在多个应用中使用相同的微信账号登录,这些应用可以通 过 UnionID 来识别出是同一个用户

三者区别


三者的区别其实很简单,可以把他们抽象成日常生活中常见的手机卡运营商。运营商有很多不同的品牌,如 联通、电信、移动等,这就是 AppID。用户在不同的平台购买手机卡,平台会生成一个独一无二的手机号,这里可以看成 OpenID。但是小王购买了这么多手机号,不同的营业厅想要验证身份通过唯一的身份证验证,这就是 UnionID。

使用方法

AppID

1.png
https://mp.weixin.qq.com/wxamp/devprofile/get_profile?token=33657168&lang=zh_CN
AppSecret 直接在微信平台生成保存好就行

OpenID/UnionID

0.png

wx.login({
  success (res) {
    if (res.code) {
      console.log('code:', res.code)
      //发起网络请求
      wx.request({
        url: 'https://api.weixin.qq.com/sns/jscode2session',
        data: {
          appid:'wxee24caea5cae426a', 
          secret:'5175859809cc0cae756213dbf1106e11', 
          js_code:res.code,
          grant_type:'authorization_code' 
        },
        success: res => {
          if (res.data.openid) {
            console.log('成功获取openid:', res.data.openid); // 成功获取到openid
          } else {
            console.error('获取openid失败:', res.data.errmsg); // 没有获取到openid,返回错误信息
          }
        },
        fail: err => {
          console.error('请求失败:', err.errMsg); // 请求失败,返回错误信息
        }
      })
    } else {
      console.log('登录失败!' + res.errMsg)
    }
  }
})
rid: 64407db4-787c85db-334c5ff0 --- code过期
rid: 64407db4-6cdf4a6f-6f3f7836 ---code重复使用
rid: 64407db4-6f6c2ac3-12a35a73 ---code错误	
  • wx.login 是微信小程序提供的 API 之一,用于实现用户的登录功能。当调用 wx.login 时,如果用户之前没有登录过,会弹出授权窗口,请求用户授权。
  • 一旦用户同意授权,微信就会返回一个唯一的登录凭证(code),这个 code 是临时的(5分钟内),并且在每次用户登录时都是唯一的。
  • 如果用户之前已经登录过与小程序绑定的同一开放平台账号下的其他应用(如公众号或另一个小程序),并且已经授权,那么在获取 openid 的同时,也可以获取到 unionid。

微信小程序返回的 openid 和 session_key 主要有以下用途:

  1. 用户识别:openid 是用户在小程序中的唯一标识,用于区分不同的用户。
  2. 数据加密:session_key 用于加密和解密用户敏感数据,确保数据传输的安全性。
  3. 身份验证:两者结合使用,可以在服务器端验证用户身份,进行安全的用户会话管理。
  4. 个性化服务:基于 openid,开发者可以为用户提供个性化的内容和服务。
  5. 用户分析:openid 可用于服务器端的用户行为分析和数据统计。

拓展

傻傻分不清之 Cookie、Session、Token、JWT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

知心宝贝

你的鼓励是我最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值