我在对google提供的Oauth的web服务进行身份验证时遇到了问题。基本上,我想用我的google帐户登录到一个网页,在上面做一些抓取。
由于web服务不是我的,所以我没有应用程序secret_key,只有clientID、redirect_URL和scope,我可以通过查看登录时使用的请求方法的参数来恢复它们。
一旦通过身份验证,该网页只需要一个名为SID (我猜是会话ID )的cookie,就可以作为一个经过身份验证的用户进行应答。没有不记名令牌,只有SID cookie。
是否可以自动执行这种类型的身份验证?我读了很多相关的话题,但它们都需要secret_key,而我没有,因为我不是应用程序的所有者。
发布于 2021-11-28 16:50:19
(由于代表原因,无法发表评论)
是的,你所要求的是可能的。从理论上讲,你可以遵循和匹配所有的请求来成功地验证自己,以获得SID并执行抓取,尽管这对于一些基本的web抓取来说是一个非常困难的任务,就像编写一个完整的科学计算器来做5 +5一样。你问的是一个非常困难的任务,当你试图使用Python请求登录到你的帐户时,你会遇到各种各样的安全问题,并被要求进行手机/验证器应用程序/电子邮件验证,然后你需要跟踪这些安全cookie并保持它们的更新,这是一个真正的混乱,对任何人来说都是极其困难的。
我认为更好的方法是手动验证自己的身份,并将HTTP和硬编码放入cookie header中的SID抓取器中。
我知道这引起了当SID cookie过期时该怎么做的问题。因为你没有提到这个网站,所以我很难想象一个网站会让你经常在Google上认证自己,而不是拥有自己的内部SID/JWT刷新系统来让你保持登录。
我的建议是:
set-cookie响应头。你可能需要在你的程序中更改和跟踪这些,但这将比编写程序登录谷歌容易得多。https://stackoverflow.com/questions/70128506
复制相似问题