首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python通过oauth登录第三方app

如何使用python通过oauth登录第三方app
EN

Stack Overflow用户
提问于 2021-11-26 18:07:20
回答 1查看 50关注 0票数 0

我在对google提供的Oauth的web服务进行身份验证时遇到了问题。基本上,我想用我的google帐户登录到一个网页,在上面做一些抓取。

由于web服务不是我的,所以我没有应用程序secret_key,只有clientID、redirect_URL和scope,我可以通过查看登录时使用的请求方法的参数来恢复它们。

一旦通过身份验证,该网页只需要一个名为SID (我猜是会话ID )的cookie,就可以作为一个经过身份验证的用户进行应答。没有不记名令牌,只有SID cookie。

是否可以自动执行这种类型的身份验证?我读了很多相关的话题,但它们都需要secret_key,而我没有,因为我不是应用程序的所有者。

EN

回答 1

Stack Overflow用户

发布于 2021-11-28 16:50:19

(由于代表原因,无法发表评论)

是的,你所要求的是可能的。从理论上讲,你可以遵循和匹配所有的请求来成功地验证自己,以获得SID并执行抓取,尽管这对于一些基本的web抓取来说是一个非常困难的任务,就像编写一个完整的科学计算器来做5 +5一样。你问的是一个非常困难的任务,当你试图使用Python请求登录到你的帐户时,你会遇到各种各样的安全问题,并被要求进行手机/验证器应用程序/电子邮件验证,然后你需要跟踪这些安全cookie并保持它们的更新,这是一个真正的混乱,对任何人来说都是极其困难的。

我认为更好的方法是手动验证自己的身份,并将HTTP和硬编码放入cookie header中的SID抓取器中。

我知道这引起了当SID cookie过期时该怎么做的问题。因为你没有提到这个网站,所以我很难想象一个网站会让你经常在Google上认证自己,而不是拥有自己的内部SID/JWT刷新系统来让你保持登录。

我的建议是:

  • 检查SID cookie的过期时间,如果在对自己进行身份验证后手动复制并粘贴它是可行的,请执行此操作。
  • 如果SID很快过期,请检查是否有应用编程接口请求获取新的SID (无需再次通过OAuth ),在您的网络面板中查找设置新SID的set-cookie响应头。你可能需要在你的程序中更改和跟踪这些,但这将比编写程序登录谷歌容易得多。
  • 如果没有办法刷新SID,它们经常过期,你需要做长期的网络抓取,坐在那里每30分钟手动获取一个新的cookie是不够的,我建议考虑使用木偶/铬来做这件事,因为它比通过Python HTTP请求来做要容易得多。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70128506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档