收藏
回答

小程序为什么不直接在前端获取到 openId?

目前小程序是通过 wx.login 获取的 code, 然后通过 code 与后台交互, 通过 appId + appSecret + code 获取 openID

就 openId来讲, 微信客户端应该能直接做到通过 code + 小程序标识 来获取openId, 为什么还要通过服务端

我目前想到的一个原因是 "服务端拥有登录态" , 是否还有其他原因

回答关注问题邀请回答
收藏

5 个回答

  • fearless
    fearless
    2021-12-13

    无意中看到这个问题,简单回答下,用户在微信登录成功,如果直接把opendid给小程序,然后小程序把账号设置为登录状态,这里存在风险假设其他人知道了你的opendid就可以直接登录你的账号了,而且后续可以一直登录你的账号。

    用code的方式,假设别人通过网络监听知道了这次code,也只有这一次有效,因为code只有短时间有效,而且每次都会变,降低了风险。

    2021-12-13
    有用
    回复
  • 2021-03-05

    为了安全起见,小程序域名不能配置成api.weixin.qq.com,所以前端调不了接口。

    2021-03-05
    有用
    回复
  • 社恐的王同学
    社恐的王同学
    2021-03-05

    保存在前端???铭感信息 存前端??

    2021-03-05
    有用
    回复 6
    • 刘恩德
      刘恩德
      2021-03-05
      openId 不算敏感信息吧
      2021-03-05
      回复
    • 社恐的王同学
      社恐的王同学
      2021-03-05回复刘恩德
      因为 小程序的前端代码是可扒下来的,如果单纯的前端可以拿到openid,我下载你的代码,伪造用户openid,批量跑你接口
      2021-03-05
      回复
    • 社恐的王同学
      社恐的王同学
      2021-03-05
      openid单纯的存在前端么任何问题,如果你还要前端带openid去鉴别用户身份,这个风险就太大了
      2021-03-05
      1
      回复
    • 刘恩德
      刘恩德
      2021-03-05
      你好, 我不是这个意思, 微信客户端也通过 code + 小程序标识 来获取openId
      2021-03-05
      回复
    • 耿霄
      耿霄
      2021-03-05
      我来说一下我的理解吧。
      1.openId 是微信开发平台下的每个应用的用户唯一标识,比如小程序和公众号(同一个用户的openId是不同的,但是可以通过unionid来标识标识为同一个用户)
      2.技术上是可以实现 前端通过 code + 小程序标识,来换取openId,这样就相当于拿到了应用的用户标识,其他开发者可能会把 openId作为自己应用的唯一标识,对于正常使用者,没啥风险。但是网络上未必都是正常的开发者,安全漏洞无处不在,这样任何一个非法制就能绕开拿到用户唯一标识,潜在分享风险非常大。
      3.通过代理码可以抓取到微信小程序的任何明文请求,如果有些系统没有处理安全漏洞问题,如果前端就能获取到openid,无疑又一次放大了风险
      4.如果通过服务器解密获取openId,之前增加了获取openId的难度,降低了风险。


      都是出于安全考虑和之前的设计考虑的。


      未来可能也会放开,之前通过 code + 小程序标识无法获取unionid,但现在就可以。


      没有什么是不变的,只是当前这样成本更低,更适合而已
      2021-03-05
      1
      回复
    查看更多(1)
  • 跨商通
    跨商通
    2021-03-04

    一直就是前端保存的飘过。

    2021-03-04
    有用
    回复 1
    • 刘恩德
      刘恩德
      2021-03-05
      一般都这么处理, 我没想通的是为什么 wx.login 直接获取 openId
      2021-03-05
      回复
  • 耿霄
    耿霄
    2021-03-04

    我能想到的是安全机制考虑

    2021-03-04
    有用
    回复 1
    • 刘恩德
      刘恩德
      2021-03-05
      能具体点吗
      2021-03-05
      回复
登录 后发表内容
问题标签