一次“失败”的经历

前段时间,由于某些原因,需要每天在微信上进行签到兑换积分,但是作为一个将懒进行到底的人,怎么能够忍受这种每天的重复无聊呢?所以就萌生了想要利用工具来实现自动签到的功能。

思路构想:通过抓包,将签到的链接抓取出来,在设置一个定时任务每天自动访问该链接就可以实现。

额,想象很美好,现实。。。

虽然能通过抓包将链接抓取到,但是却出现了下面的页面。

啊,hin难受啊。于是查看一下返回的页面源码。

(重点在标签中的)

发现微信是通过判断中是否包含来确认是否从微信中打开。所以想着设置看能不能够绕过这个限制。

重新打起信心试了一下,没有任何悬念,这个限制的问题,还真是给猜对了。没有出现之前“请在微信客户端打开链接”的提示,但网页却什么都没有显示???

刚开始以为是网速的问题,但试了几次之后,我就发现了端倪:URL好像有点奇怪。

https://open.weixin.qq.com/connect/oauth2/authorize?

appid=wx2bb48742112d4

&redirect_uri=http%3A%2F%2Fgj.gogiv.cn%2Fshop%2Fapp%2Findex.php%3Fi%3D18%26c%3Dauth%26a%3Doauth%26scope%3Dsnsapi_base

&response_type=code

&scope=snsapi_base

&state=w7sid-f519e40988c54644e357a5570d6f62

&connect_redirect=1

#wechat_redirect

OAuth简介

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问许可或他们数据的所有内容。

OAuth 2.0定义了四种授权方式:

授权码模式(authorization code)

简化模式(implicit)

密码模式(resource owner password credentials)

客户端模式(client credentials)

(来自网络)

它的步骤如下:

(A)用户访问客户端,后者将前者导向认证服务器。

(B)用户选择是否给予客户端授权。

(C)假设用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码。

(D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。

(E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。

code说明 : code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。

在抓到的链接中,没有参数,所以肯定验证不通过,而且只能使用一次,5分钟失效。所以感觉应该是凉凉了,算是彻底放弃了上面的想法。

最后

虽然这次自动签到的想法没有实现,期间跌跌撞撞,但是也算是学到了一些新的知识。

有时候真的是不接触,就不会了解一些知识。当我们在不断碰壁的过程,也正是不断地发现自己的不足,不断提高自己的过程。

“人的知识好比一个圆圈,圆圈里面是已知的,圆圈外面是未知的。你知道的越多,圆圈就越大,你不知道的也就越多。” ——(希腊)芝诺

参考文章:

理解OAuth 2.0:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

Python绿洲

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181206G0DGC600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券