1
liliclinton 2022-01-12 18:57:56 +08:00
和 vue 无关
|
2
yxnwh OP @liliclinton 好吧,我果然是在一派胡言。。。
|
3
shenyu1996 2022-01-12 19:30:27 +08:00
试试把登录流程也加上呢 接口拿到实时的 token 再走 sign
|
4
yxnwh OP @shenyu1996 有的,那个很简单就没贴,思路就是通过 username 和 password ,拿到实时 token ,拿到的 token 再传到这个 sign 函数里面,拼接成 authorization ,就可以签到了
很奇怪的地方就是,直接 post 构造链接,无论如何都不能签到,但一旦登录次,再 post 链接,马上就能签到成功 |
5
powersee 2022-01-12 19:50:21 +08:00 via Android
刚好最近也研究这个网站的签到,其实只需要 authorization 就行的,不需要 cookie 也能签到。不过这网站登录一次的有效时长只有 3 天左右好像。估计只能按照你上面的思路,先弄好登录这一步才行。
|
6
yxnwh OP 登录这一步,你可以在抓包时关注下含有 jwj-auth 这个关键词的网址,会有惊喜
|
8
maichael 2022-01-12 20:20:15 +08:00
1. 和 vue 没关系
2. 没报 403 ,token 应该没问题 3. 如果已经登录的直接打开页面也能签到,说明跟登录接口没什么关系,应该是有一个前置接口没有调用,而这个接口在登录状态打开页面会自动调用,可以再看看登录状态下打开页面调用了那些接口。 |
9
yxnwh OP @maichael 多谢大佬的思路,我在 fiddler 抓包时,发现登录网页后,stream 流里面还紧跟着一个登录 hi.kejiwanjia.com 链接的 login 信息,我试试把这个 login 也写进去
|
10
powersee 2022-01-12 21:26:33 +08:00
那就容易了,先使用 post 去登录,然后它返回的内容里有 token 的值,用 'Bearer ' + token 就是 authorization
然后再用这个 authorization 去 post 签到的那个接口就可以了 |
11
yxnwh OP @maichael 再次感谢大佬,昨晚分析了一会,大致是这个流程(小白个人分析,不一定完全对):这个网站是先调用了 getUserMission 这个接口,获取服务器端用户的一些数据(等级,积分,用户名等等)其中包含了 mission 字段,随后再调用 UserMission 接口签到,并将签到数据写入 mission 字段,从而实现用户签到数据的更新,如果不经调用 getuserinfo 这个接口,则导致无法获得 mission 字段,进而导致签到后的数据无法写入
|
12
gadfly3173 2022-01-13 11:10:39 +08:00
nexttick 的作用是等待 DOM 更新后再执行操作,你把它当成 setTimeout 来看就可以
|