我正在尝试从命令行执行OAuth。我有一个本地Web服务器,处理一个请求以获取OAuth代码。本地Web服务器正在扩展BaseHTTPServer.HTTPServer
,处理程序扩展BaseHTTPServer.BaseHTTPRequestHandler
。我正在做的与使用Google进行OAuth2非常相似,只是我没有访问Google API。我正在从here执行run_flow的简化版本。我已尝试使用Google client_id和请求网址(例如,“https://accounts.google.com/o/oauth2/auth”)并且它有效,处理程序的self.path
包含/?code=xxxx
,我可以使用代码通过解析处理程序中的self.path
。
我的问题是,当我使用其他API时,处理程序的self.path
始终只是'/'
个字符。我正在访问的API发送一个重定向,如下所示:
HOST:PORT/#code=xxxx
,而Google的重定向看起来像HOST:PORT/?code=xxxx
。我知道#
字符是URL中的片段标识符,但是
#
字符是否以某种方式终止了处理程序对self.path
的读取?有没有办法解决它并抓住code
?提前致谢。