V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
AmiKara
V2EX  ›  程序员

如何绕开 [请在微信客户端打开链接]

  •  1
     
  •   AmiKara · 2020-11-08 11:24:21 +08:00 · 7134 次点击
    这是一个创建于 1512 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前做的一个学校疫情自动打开系统现在失效了,发现是现在要检测 session,获取 session 的方法就是公众号向open.weixin.qq.com/connect/oauth2/authorize?...发送链接请求 code 然后重定向请求 session,但是在重定向的时候会显示 [请在微信客户端打开链接] ,我按照网上的方法修改了 ua 可是没效果,请问现在该怎么绕过这一层?

    18 条回复    2020-12-08 16:59:07 +08:00
    whypool
        1
    whypool  
       2020-11-08 12:49:33 +08:00
    现在 ua 已经无效了
    抓包拿返回的 session
    AmiKara
        2
    AmiKara  
    OP
       2020-11-08 12:59:24 +08:00
    @whypool session 抓包是拿的到,但是我在服务器里无法构建微信的环境发送请求获取到 session
    crystom
        3
    crystom  
       2020-11-08 13:14:32 +08:00
    抓包拿下 cookie 存着
    icedwatermelon
        4
    icedwatermelon  
       2020-11-08 13:19:36 +08:00
    用微信开发者工具调试?
    puzzle9
        5
    puzzle9  
       2020-11-08 13:26:54 +08:00
    你要晓得 之所以要用微信打开 是为了登录 获取用户 openid
    这不是饶不饶的问题
    clf
        6
    clf  
       2020-11-08 13:32:32 +08:00
    自动打卡 Android 下可以考虑用 auto.js 来模拟点击实现。
    AmiKara
        7
    AmiKara  
    OP
       2020-11-08 13:44:57 +08:00
    @puzzle9 我也觉得是要获取用户的 openid,可是抓到的包的请求头和重定向网址里并没有获取用户信息。
    @crystom
    AmiKara
        8
    AmiKara  
    OP
       2020-11-08 13:45:34 +08:00
    @crystom 似乎并没有 cookis
    opengps
        9
    opengps  
       2020-11-08 14:07:49 +08:00 via Android
    这个地址不是拿 session,而是用 oauth 认证,需要返回一个带有 code 用来获取微信信息的功能,所以已经构造不出来了
    boris93
        10
    boris93  
       2020-11-08 15:25:44 +08:00 via Android   ❤️ 1
    这是 OAuth2 流程的一步
    这个链接会返回一个 HTTP 302,location 里面会带一个 code
    location 去到的那个链接会用这个 code 换到一个 access token,这是发生在后台服务里面的
    你没法绕过,也没法伪造
    cz5424
        11
    cz5424  
       2020-11-08 15:57:57 +08:00
    手机微信模拟点击,得到 cookies 后程序操作
    cz5424
        12
    cz5424  
       2020-11-08 15:58:39 +08:00
    总而言之放弃吧,投入成本过高
    rabbit
        13
    rabbit  
       2020-11-08 22:15:44 +08:00
    open.weixin.qq.com/ 看一下微信公众号的文档吧 这段就是为了公众号获取 openid 并进行 oauth 认证的。
    我 iOS 不登录微信 进行跳转登录别的游戏账号就用一些这个网址
    AmiKara
        14
    AmiKara  
    OP
       2020-11-09 17:44:10 +08:00
    @boris93 我理解的他在请求 code 之前又进行了一次获取用户 openid 重定向,但是我无法抓包获得其发送 openid 的请求,所以我猜测这一步发生在微信客户端的内部,目前似乎无法绕过这一步(我们学校的打卡程序没有获取 access token 这一步)


    @rabbit 大佬能细说一下怎么模拟获取 openid 的这一步吗,文档里似乎并没说怎么进行验证,不知道怎么解决这个授权界面 QAQ
    boris93
        15
    boris93  
       2020-11-09 18:22:30 +08:00 via Android
    @AmiKara #14 用 code 换 token 发生在后端,你抓不到的
    rabbit
        16
    rabbit  
       2020-11-10 15:07:03 +08:00
    @AmiKara 能获取 但是获取的你得不到一样的.....也就是没有用......
    我用这一串网址是为了获取到微信返回的信息直接注入游戏......
    实际这东西获取不到的 只有公众号才能获取 并且每一个公众号获取到的同一个用户的 openid 是不同的.....
    这东西没那么好破......
    weixingna
        17
    weixingna  
       2020-12-08 13:50:22 +08:00
    @crystom 这不会太麻烦了点嘛,cookie 失效还得人工抓包
    crystom
        18
    crystom  
       2020-12-08 16:59:07 +08:00
    @weixingna 一般系统的 cookie 都有个超时时间,只要设定程序定时访问,且周期小于过期时间,就可以一直保活吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2662 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:30 · PVG 14:30 · LAX 22:30 · JFK 01:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.