用Python从生成的URL中提取令牌

2024-10-02 14:23:06 发布

您现在位置:Python中文网/ 问答频道 /正文

真的很抱歉,如果这听起来很糟糕,但我一直在玩Python在过去的几天。你知道吗

我一直在尝试做一个桌面客户端。长话短说,我已经设法使它生成一个授权的网址。就像http://www.samplesample.com/authorize/oauth_token=[bigassstringhere]&oauth_callback=http://sometokenrecievingurl.com

转到那个URL,我被重定向到http://sometokenrecievingurl.com?oauth_token=[anotherbigassstring]&oauth_verifier=[yetanotherbigassstring]

所以我的问题是,有没有一种方法可以获得oauth\u令牌和oauth\u验证器值,而不必手动复制和粘贴URL进行授权?python有没有办法自己检查生成的URL,检查它重定向到的URL,然后切掉oauth\u令牌和oauth\u验证器部分?你知道吗

再次抱歉,如果这听起来很简单的人在那里。我不太确定,因为我是新来的,我一直在寻找相关的问题,所以没有运气。或者我只是在看错误的链接或术语。但是是的,任何帮助都将不胜感激。你知道吗


编辑

好吧,所以我继续玩,我重申我完全忘了这一步。生成的URL实际上会将您指向一个页面,在该页面中,我需要单击是否允许访问。单击“允许”后,这是我唯一一次被重定向到http://sometokenrecievingurl.com?oauth_token=[anotherbigassstring]&oauth_verifier=[yetanotherbigassstring]

所以我想知道,如何从一个打开的浏览器中提取这些字符串?你知道吗


Tags: comtokenhttpurl客户端页面oauth桌面
1条回答
网友
1楼 · 发布于 2024-10-02 14:23:06

根据url中存在的oauth_verifier,您正试图通过OAuth 1.0a授权流。你知道吗

OAuth 1.0a specification中所述:

The OAuth protocol enables websites or applications (Consumers) to access Protected Resources from a web service (Service Provider) via an API

这意味着您应该运行一个web服务器来使用这个授权协议。你知道吗

OAuth 1.0a授权流大致如下所示:

  1. 从服务器获取提供者的请求令牌URL。您需要提供plenty of request parameterssign the request。您将需要来自响应的oauth_tokenoauth_token_secret。您应该将oauth_token_secret保存到一些持久性存储中,比如DB或session,因为您稍后将需要它。你知道吗
  2. 将用户重定向到提供者的用户授权URL,您需要在其中提供plenty of request parameters,其中一个也是您在步骤1中获得的oauth_token,而oauth_callbackURL是您服务器的URL,提供者在授予用户对您的应用程序的访问权限后将重定向用户。你知道吗
  3. 提供者将用户重定向到服务器上的oauth_callbackURL。在这里,您应该从请求中获取oauth_verifieroauth_token,并检索存储在步骤1中的oauth_token_secret,然后在服务器端获取中将它们全部发送到提供者的访问令牌URL。最后,响应应该包含oauth_token,这是您想要的访问令牌,您可以使用它access the user's protected resources通过providers API。你知道吗

如果您想在本机(非服务器)应用程序中授权用户,那么应该使用OAuth 2.0,它还支持对native applications的授权。但这也取决于供应商。你知道吗

我不建议您手动实现这一点,特别是不要使用oauth1.0a,而是使用大量的python授权框架之一。你知道吗

相关问题 更多 >