0

我一直在尝试访问从 lyrebird API 获得的重定向中的变量,例如: http ://website.com/auth/lyrebird#access_token=value1&token_type=bearer&state=value2 我无法通过 GET 或访问此 access_token邮政。任何帮助表示赞赏。

编辑:很抱歉,在发布问题之前我必须进行更深入的搜索。我发现 url 中的那些 # 是用于锚标记的,它从未真正发送到服务器。如果将来有人遇到同样的问题,这就是我所做的:

var hash = window.location.hash.substring(1); //将哈希放入变量中,并删除#字符 window.location.replace('your django url?hash='+hash);

我用这个脚本发送了回复。

4

3 回答 3

0

查询字符串可以通过request对象访问:

request.GET.get('state')

您可以在docs中阅读有关它的信息。

于 2019-01-30T11:32:18.280 回答
0

您的网址格式不正确,应该是这样的

http://website.com/auth/lyrebird?access_token=value1&token_type=bearer&state=value2

然后你可以访问你的价值,比如

 state_value = request.query_params.get('state', None)
于 2019-01-30T11:44:57.627 回答
0

通过获取完整路径request.get_full_path(),然后像这样解析它:

from urllib.parse import urlparse, parse_qs
url ='http://website.com/auth/lyrebird#access_token=value1&token_type=bearer&state=value2'
fragment = urlparse(url).fragment
parse_qs(fragment)
{'access_token': ['value1'], 'state': ['value2'], 'token_type': ['bearer']}
于 2019-01-30T12:16:49.463 回答