评论

为什么不建议用openid作为登录凭证?

为什么不建议用openid作为登录凭证?

在开发小程序的过程中,登录是一个入口场景,基本每个开发者都会遇到,

那么在开发过程中,我们知道

 既然openid是唯一的,那我为什么不能用openid作为凭证,还要麻烦的用个第三方session


其实我之前也一直不明白,今天看了下面这个例子,顿时豁然开朗


有可能造成数据越权。

比如今天我通过我的手机登录了微信,打开了小程序。但是明天有个朋友想用我的手机登一下微信。如果用openid作为登录凭证,登录小程序的时候检测到openid已经存在,所以不会再走登录过程,这样我的数据就让我的朋友看到了。所以还是要按照官方推荐的步骤来。


### 20191224

https://developers.weixin.qq.com/community/develop/doc/0002a028214de86e94079941551800

小明同学很稀罕同桌小花,有天看到小花在某个微信公众号写日记,好巧,猥琐的小明看到并记住了小花的开屏密码。等课间小花同学出去时,将她手机开机并打开了那个公众号,进入了个人中心。

哎呀,时间不够看呀,于是选择了用浏览器打开看到了URL。


你说巧不巧,这个站竟然在URL里有个openid的传值,没有登陆鉴权。


小明用他无比迅捷的手速把url发给了自己的号,还不着痕迹地打扫了战场。


以后的日子里,小明时刻都能通过点击那个url翻看小花的日记,真是爽煞,发起了向女神攻心的神级技能。


### 20200107


更新:下面这个文章有说明为什么不用openid作为登录态


https://developers.weixin.qq.com/community/develop/doc/000c2424654c40bd9c960e71e5b009


Q2: 既然用户的openId是永远不变的,那么开发者可以使用openId作为用户的登录态么?

A:行,这是非常危险的行为。因为openId是不变的,如果有坏人拿着别人的openId来进行请求,那么就会出现冒充的情况。所以我们建议开发者可以自己在后台生成一个拥有有效期的第三方session来做登录态,用户每隔一段时间都需要进行更新以保障数据的安全性。


最后一次编辑于  2020-01-07  
点赞 5
收藏
评论

19 个评论

  • 影猪
    影猪
    2021-08-23

    问题还是服务端怎么验证得到的openid, 是真实用户通过微信api获取并传输的, 而不是某个恶意用户, 伪造了别人的openid直接调用接口的.

    求教!

    2021-08-23
    赞同
    回复
  • 鹰
    2020-12-21

    如果A用户用自己的手机登陆微信小程序拿到的openid是1234,B用户用自己的手机登陆微信小程序拿到的openid是4321,请问B用户用A用户的手机登陆微信进入小程序拿到的openid是什么?

    2020-12-21
    赞同
    回复 1
    • 小肥羊🍊
      小肥羊🍊
      2020-12-21
      登录的哪个微信就是哪个openid,跟手机无关
      2020-12-21
      回复
  • Hello,World
    Hello,World
    2020-12-09

    看了很多文章,一头雾水,我想问各位大佬一个问题:我的用户已经授权了openid已经拿到,但是登录用户过期了需要重重登录,我怎么拿cookie中的openid 来给他自动登录

    2020-12-09
    赞同
    回复
  • 小肥羊🍊
    小肥羊🍊
    2020-01-07

    更新:下面这个文章有说明为什么不用openid作为登录态


    https://developers.weixin.qq.com/community/develop/doc/000c2424654c40bd9c960e71e5b009


    Q2: 既然用户的openId是永远不变的,那么开发者可以使用openId作为用户的登录态么?

    A:行,这是非常危险的行为。因为openId是不变的,如果有坏人拿着别人的openId来进行请求,那么就会出现冒充的情况。所以我们建议开发者可以自己在后台生成一个拥有有效期的第三方session来做登录态,用户每隔一段时间都需要进行更新以保障数据的安全性。


    2020-01-07
    赞同
    回复
  • XCXer
    XCXer
    2019-12-26

    openid是用户id(与微信账号一一对应的),也可以做个login用账号密码登录。

    2019-12-26
    赞同
    回复
  • 好梦成双
    好梦成双
    2019-12-25

    token啊和过期时间

    2019-12-25
    赞同
    回复
  • 天天修改
    天天修改
    2019-12-24

    嗯,你把密码告诉他好了 ^_^,可能他其实是想看下支付宝能不能转账

    2019-12-24
    赞同
    回复 1
    • 小肥羊🍊
      小肥羊🍊
      2019-12-24
      哈哈哈哈哈哈。。。。。
      2019-12-24
      回复
  • 这都申请了
    这都申请了
    2019-12-23

    走不走登录流程和openid有啥关系?你都让你朋友用你的微信了,你还怕泄露啥?

    2019-12-23
    赞同
    回复 1
    • 小肥羊🍊
      小肥羊🍊
      2019-12-23
      那再帮我举个栗子,为什么官方建议用openid和session_key来自定义登录态呀
      2019-12-23
      回复
  • 子不语
    子不语
    2019-12-23

    所以你是不会用login吗?

    2019-12-23
    赞同
    回复 1
    • 小肥羊🍊
      小肥羊🍊
      2019-12-23
      我目前是用了openid,没有自定义登录状态呀
      2019-12-23
      回复

正在加载...

登录 后发表内容