Mapaler/PixivUserBatchDownload

登录时显示client_id未授权 无法登陆

elysia-lilias opened this issue · 7 comments

可能确实需要更新客户端id了,等我有空去看看新版本是什么样

刚才研究了一下,现在的登录需要进行大改才行。

我目前的研究结果如下

错误产生的原因

看更新日志就知道了,看来无法再用老版本的登陆方式了

Version 5.0.234

  • Several improvements and bug fixes have been added.
  • The option to link with Pawoo has been removed.
  • From the beginning of February 2021, you'll have to update your app to the latest version if you're running ver.5.0.219 or earlier.

现在手机版的登录已经改成了从网页使用OAuth登录。

研究心得

  • APP 登录 API 的grant_typepassword换成了authorization_code,只要有这个authorization_code,就可以登录了;
  • 和网页版用的同一个登录服务,因此也可以在电脑上访问手机 APP 登录用的网页;
  • 网页登录有很多层 302 重定向,JS 无权限控制步骤,只能得到最终跳转结果,重定向的最终结果是 APP 私有协议,;
  • 这个私有协议里就能得到authorization_code,网页上得到的话就能登录,但是 TamperMonkey 也无法正确获取 302 响应头的 location 为私有协议的链接。

解决方案

目前可能实现的方案,是在 Windows 下编写一个程序注册 pxiv 的私有协议,然后浏览器打开 pxiv 的私有协议的时候,就由我自己的程序来截获authorization_code
再手动把截获的authorization_code复制回网页里去登录。

我知道大家可能急着用,但是毕竟现在春节期间走亲访友,我要开车,自己也要利用假期休息陪老婆(平时都是上班摸鱼来写的)。
这个工程不小,登录系统得推倒重写,还是等我有空再写吧。

插个眼

新的登陆系统已经完成,当然可能存在bug,请大家测试。
同时为了适应国内的环境,把Aria2代理设置也添加到了方案中。