每当我将以下内容复制并粘贴到web浏览器中时
原始URL
http://accounts.spotify.com/authorize?client _ id = xxx2d 0 ff 4186 b 517 da a4 E1 c 577 e 4
我得到这个最终的网址
最终网址
http://localhost:5000/#access_token=XXX-LQY7xCQXTqpmsfroChl5yeUoiIDmoBfybqc9psLE2WFwP2UNQ26nVuiLGQkIWA-4occeXbrScaO5mqmMHZpgDPjTcSEfN9VZCLKKyfE46FUsucmCetP9owY_bRWoraZ8P2wwq0osZEMit0jmOrThvPTyKqp7O_rAbwT1BUsLeB9ux7xdLnTreocpmtZl3wqMXz24B2mwRMEieb_Dq2PUgIaK3zE7X-RvnzqQ
我的问题是,如何通过编程方式使用原始 URL 来获取最终 URL 中的access_token。最好是在蟒蛇中。原始URL将是常量,因此我不需要对已声明的参数的值进行任何更改
我已经试过了
我猜浏览器包含与身份提供者的有效会话(授权url-
假设是隐式授权,目的是检索url哈希片段中的访问令牌。脚本需要登录到身份提供者或拥有相关的会话cookies数据。
示例Python代码:
import requests
from urllib.parse import urlparse
singleSession = requests.Session()
# start with original url as https://oauth-abc.def.com/auth?client_id=123&redirect_uri=https://abc.def.com/oauth-callback&response_type=token&nonce=123&scope=something
# since there is no session with identity provider, the following get request should lead to redirect to identity provider / third party login form page.
url_login_authorize = 'https://oauth-abc.def.com/auth?client_id=123&redirect_uri=https://abc.def.com/oauth-callback&response_type=token&nonce=123&scope=something'
result_login_oauth_page = singleSession.get(url_login_authorize, allow_redirects=True)
# result_login_oauth_page.url is the identity provider login form html page url which could be unique
# post credentials to authenticate with identity provider
url_login_oauth_endpoint = result_login_oauth_page.url + '/login'
result_login_oauth = singleSession.post(url_login_oauth_endpoint, credentials_object, allow_redirects=True)
# post request to grant/confirm the requested scopes with authenticated session
url_login_confirm_oauth_endpoint = result_login_oauth_page.url + '/confirm'
result_login_confirm_oauth = singleSession.post(url_login_confirm_oauth_endpoint, {}, allow_redirects=True)
# end with the final url as https://abc.def.com/oauth-callback#access_token=ilovemoney&expires_in=3600&token_type=Bearer&scope=something
result_oauth_callback_parse = urlparse(result_login_confirm_oauth.url)
result_oauth_callback_params = dict()
for callback_param in result_oauth_callback_parse.fragment.split("&"):
callback_param_split = callback_param.split("=")
result_oauth_callback_params[callback_param_split[0]] = callback_param_split[1]
print("result_oauth_callback_params['access_token']: ", result_oauth_callback_params['access_token'])
我假设您使用的授权流是用于获取用户令牌的隐式授权。但是,使用此流需要用户通过浏览器进行交互,以完成流并获取令牌。
这意味着在没有用户交互的情况下,隐式授权不能用于通过无浏览器应用获得用户的访问令牌。
对于无浏览器应用程序,您可能希望使用的身份验证流是客户端凭据流,您可以直接在响应中获取访问令牌。此授权流的限制是您不能使用需要用户身份的endpoint。
在文档的“常见问题解答”部分中,可能有一个适用于你的方案的答案,你可以改为使用刷新令牌。
问题内容: 因此,我正在使用net / http包。我正在获取一个我肯定知道要重定向的URL。在到达最终网址之前,它甚至可能重定向了几次。重定向在后台自动处理。 有没有一种简单的方法来确定最终的URL是什么,而没有涉及在http.Client对象上设置CheckRedirect字段的棘手的解决方法? 我想我应该提一提我想出了一种解决方法,但这有点of脚,因为它涉及使用全局变量并在自定义http.C
问题内容: 当我使用jQuery进行Ajax请求时,是否可以查看请求的URL? 例如, 如何访问jQuery实际用于发出请求的URL?也许某种方法/属性?我在文档中找不到它。 谢谢。 问题答案: 在成功方法中设置一个断点,然后观察 是请求的真实网址。
我正在编写一个处理多个系统的应用程序。用户可以选择他想使用的系统,我将该系统ID存储在会话(客户端会话)中 现在我有了服务类,比如说CustomerService。 我想使用 Guice 将客户实例注入控制器。但是我想使用存储在会话中的系统ID实例化客户服务。 如何访问<code>请求。Guice模块中的会话? 编辑: 简化了我上面的代码。我的实际代码使用接口。我如何使用辅助注射? 这给了我:客户
问题内容: 如何在JavaScript中查看最后的GET http请求?基本上,我所能看到的是我的Firebug控制台。当XMLHttpRequests在控制台中显示时,我看到一行看起来像这样: 如何在JavaScript中查看该URL? 编辑:为了清楚起见,我正在寻找GET …和… 200之间的URL。我什么都不在乎。我不要任何其他信息。 问题答案: 我最终找到了在PHP中使用的变通办法,然后将
问题内容: 我想要的是具有更改页面一部分的链接,以及它的动态URL,在这里可以指定诸如 单击此处进行精确演示 所以这是我需要的链接格式: 我必须像链接变量和这样我就可以改变一个页面上的多个万物而不realoading。 或诸如http://www.wbhomes.com.au上的另一种格式,这 正是 我想要的,但是第一种格式也不错,但这要漂亮得多。 要求 需要从任何地方访问,例如邮件,或者我只写在
我有一个问题,我希望你能帮忙,因为我是哈希和哈希引用的东西的新手? 我有以下数据结构: 如果我想访问关键中的所有URL,以便我可以对URL执行一些其他操作,那么访问这些元素的正确或首选方法是什么? 例如,我将以下面的URL结束,然后我可以在< code>foreach循环中对这些URL执行操作: -编辑- 用于访问上面所示数据结构中进一步向下的元素的代码: 使用上面的代码,为什么会出现以下错误?