PinkD / corplink-rs

使用 rust 实现的飞连客户端
GNU General Public License v2.0
194 stars 26 forks source link

2.2.x版本貌似不能用了 #23

Closed ermazi closed 2 months ago

ermazi commented 5 months ago

报错 [2024-01-30T17:46:49Z WARN corplink_rs::client] failed to login with method lark: error decoding response body: missing field url at line 1 column 80 显示登录成功了, 但是响应拿url字段失败了

PinkD commented 5 months ago

我司暂时没有更新,所以我没法研究新版本,你可以参考 #20 自己研究一下

Jinxuyang commented 2 months ago

原因是新版本api/tpslogin/token/check该接口返回参数有变化,不再返回url参数

image

而otp信息由api/v2/p/otp接口返回

image

可以尝试修改 src/resp.rs RespLogin

image

登录成功后手动输入otp,暂时解决问题

jixiuf commented 2 months ago

curl https://host/api/v2/p/otp 是这样的,我看你的截图上返回的是json ,是有什么额外的请求参数吗? 另问 你是用的什么抓包软件, 我手机上配代理,飞连就无法正常工作,无法抓包。

<!doctype html><html lang="zh"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/><meta name="renderer" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><script>window.globalInfo = {
                VERSION: 'portal-fe-2.2.8.1335',
                APP_NAME: '飞连',
                APP_NAME_EN: 'FeiLian',
                REGION: 'cn',
                CDN_PREFIX: '',
                DEPLOY_TYPE: '0'
            };</script><link rel="icon" href="/portal-static/favicon.ico"><script defer="defer" src="/portal-static/manifest_4f052a7947f4e6f4a3c9.js"></script><script defer="defer" src="/portal-static/index_b612b8aba6a6af00a52e.js"></script><link href="/portal-static/index_e76bea51.css" rel="stylesheet"></head><body><div id="root"></div><script>function isMobile() {
                return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
            }
            function checkBrowser() {
                var Sys = {};
                var ua = navigator.userAgent.toLowerCase();
                var s;
                (s = ua.match(/edge\/([\d.]+)/))
                    ? (Sys.edge = parseInt(s[1]))
                    : (s = ua.match(/rv:([\d.]+)\) like gecko/))
                      ? (Sys.ie = parseInt(s[1]))
                      : (s = ua.match(/msie ([\d.]+)/))
                        ? (Sys.ie = parseInt(s[1]))
                        : (s = ua.match(/firefox\/([\d.]+)/))
                          ? (Sys.firefox = parseInt(s[1]))
                          : (s = ua.match(/chrome\/([\d.]+)/))
                            ? (Sys.chrome = parseInt(s[1]))
                            : (s = ua.match(/opera.([\d.]+)/))
                              ? (Sys.opera = parseInt(s[1]))
                              : (s = ua.match(/version\/([\d.]+).*safari/))
                                ? (Sys.safari = parseInt(s[1]))
                                : 0;
                return Sys;
            }
            function showBrowserTips(text) {
                window.onload = function (e) {
                    var mainEle = document.getElementById('root');
                    var div = document.createElement('div');
                    div.innerText = text;
                    div.style =
                        'width: 100%; height: 30px; line-height: 30px; text-align: center; background-color: #fff7e8; color: #1d2129;';
                    document.body.insertBefore(div, mainEle);
                };
            }
            function init() {
                var lang = localStorage.getItem('i18nextLocale');
                var sys = checkBrowser();
                var browserTipsText =
                    lang === 'en-US'
                        ? 'The browser you are using may not be able to access this application normally. It is recommended to use the Chrome 49 +/Safari 11 +/Firefox 44 + browser to open this application for the best experience.'
                        : '您使用的浏览器可能不能正常访问本应用,推荐使用 Chrome 49+ / Safari 11 + / Firefox 44+ 浏览器打开本应用,获得最佳体验';
                var phoneTipsText =
                    lang === 'en-US'
                        ? 'This application does not support opening on the mobile, please use the pc browser to open it'
                        : '本应用暂不支持移动端打开,请使用 pc 浏览器打开';
                if (sys.ie) {
                    showBrowserTips(browserTipsText);
                }
            }
            init();</script><div class="browser-extension-handler-lkD3yxpq6pwc"></div></body></html>

@Jinxuyang

Jinxuyang commented 2 months ago

我用的ProxyMan,所有参数应该都在上面的截图里,看返回的东西,尝试加上User-Agent头试试 @jixiuf

jixiuf commented 2 months ago

我用的ProxyMan,所有参数应该都在上面的截图里,看返回的东西,尝试加上User-Agent头试试 @jixiuf

我看是个post 方法 有body 体吗。 我的抓包工具没弄好,还是抓不了。麻烦多提供些信息,我试试能不能搞出来。

Jinxuyang commented 2 months ago

我用的ProxyMan,所有参数应该都在上面的截图里,看返回的东西,尝试加上User-Agent头试试 @jixiuf

我看是个post 方法 有body 体吗。 我的抓包工具没弄好,还是抓不了。麻烦多提供些信息,我试试能不能搞出来。

body是空的

Jinxuyang commented 2 months ago

我用的ProxyMan,所有参数应该都在上面的截图里,看返回的东西,尝试加上User-Agent头试试 @jixiuf

我看是个post 方法 有body 体吗。 我的抓包工具没弄好,还是抓不了。麻烦多提供些信息,我试试能不能搞出来。

POST /api/v2/p/otp?app_version=2.2.10&brand=Apple&build_number=290&client_source=FeiLian&language=zh&model=iPhone14%2C2&os=iOS&os_version=17.3.1 HTTP/1.1
Host: 
Cookie: csrf-token=; open-time=2024-03-30+22%3A20%3A29; session=; device_id=; device_name=iPhone
Connection: keep-alive
csrf-token: 
csrf_token: 
Accept: */*
User-Agent: CorpLink/2.2.10 (iPhone; iOS 17.3.1; Scale/3.00)
Accept-Language: zh-Hans-CN;q=1, en-CN;q=0.9
Accept-Encoding: gzip, deflate, br
Content-Length: 0
jixiuf commented 2 months ago

我已经调通了, 整理下代码,发个pr

PinkD commented 2 months ago

closed by #32 released in version 4.3