xbdsky
V2EX  ›  问与答

这个网站的微信登录是怎么实现的?

  •  
  •   xbdsky · Mar 7, 2018 · 3848 views
    This topic created in 3013 days ago, the information mentioned may be changed or developed.
    地址是: https://www.ruhuapp.com/login/wx?next=%2F
    看了教程,貌似要搞什么联合登录啥的,有知道的大神吗?指导下,看着有点迷糊。
    10 replies    2018-03-08 10:38:36 +08:00
    p2pCoder
        1
    p2pCoder  
       Mar 7, 2018
    https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQGe8DwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAycVQwQmRiQUo5V18xSWN0dnhxMVIAAgRY3J9aAwS0AAAA
    这是 qrcode 每次式不一样的,会有一些参数,然后就定时,短时间的去请求 微信相应接口,查询结果,
    扫描后,可以查询到扫描的结果,就把相应的微信账号返回给这个网站,基本逻辑应该是这样
    qiayue
        2
    qiayue  
    PRO
       Mar 7, 2018
    你给的这个例子,不是用微信开发平台做的 https://open.weixin.qq.com/cgi-bin/frame?t=home/web_tmpl&lang=zh_CN

    而是用公众号的生成带参数二维码这个接口,每次生成一个临时二维码(相对应的,还有永久二维码)
    不断的向后端查询是否关注成功
    后端收到用户关注公众号之后的事件推送,比较推送里边的 scene_id 和生成二维码时的 scene_id,一致则登录成功
    ByteRan
        3
    ByteRan  
       Mar 7, 2018
    @qiayue 大佬,这个是推断还是亲自写过呢?
    lhx2008
        4
    lhx2008  
       Mar 7, 2018
    这个是微信开放平台,和微信公众号是两个系统,具体看 API 介绍和 github 上面的项目
    cloverstd
        5
    cloverstd  
       Mar 7, 2018   ❤️ 2
    @tanranran

    以前拿不到 web 扫码登录权限时做过这种曲线救国的方案

    https://hui.lu/wechat-qr-scan-login/
    ByteRan
        6
    ByteRan  
       Mar 7, 2018
    @cloverstd 非常感谢大佬.学习到了.这里各个都是人才
    lsongdev
        7
    lsongdev  
       Mar 7, 2018 via iPhone
    qiayue
        8
    qiayue  
    PRO
       Mar 8, 2018
    @lhx2008 @song940 你们扫描一下就知道,这个是需要关注的(未关注时是关注,已关注是直接进入公众号),微信开放平台不需要关注,别误导人啊
    alex321
        9
    alex321  
       Mar 8, 2018 via Android
    开放平台不需要关注,扫码即可登录。
    公众平台用认证服务号也可以通过临时二维码事件实现,可检查和强制要求关注。
    xbdsky
        10
    xbdsky  
    OP
       Mar 8, 2018
    @qiayue 非常感谢,我看看教程
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2742 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 02:13 · PVG 10:13 · LAX 19:13 · JFK 22:13
    ♥ Do have faith in what you're doing.