PySide6.QtNetworkAuth.QOAuthHttpServerReplyHandler¶
- class QOAuthHttpServerReplyHandler¶
通过设置本地HTTP服务器来处理回环重定向。更多…
概要¶
方法¶
def
__init__()
def
callbackPath()
def
callbackText()
def
close()
def
isListening()
def
listen()
def
port()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
此类用作使用OAuth 2.0授权过程的loopback redirection的回复处理程序。
redirect URI 是授权服务器在流程的授权部分完成后将用户代理(通常是系统浏览器)重定向到的地方。环回重定向 URI 使用
http
作为方案,并使用 localhost 或 IP 地址字面量作为主机(参见IPv4 和 IPv6
)。QOAuthHttpServerReplyHandler
设置了一个本地服务器。一旦授权服务器将浏览器重定向到这个本地地址,回复处理程序会解析重定向URI的查询参数,然后通过a signal
发出授权完成的信号。要处理其他重定向URI方案,请参见
QOAuthUriSchemeReplyHandler
。以下代码说明了使用方法。首先,需要的变量:
m_oauth = QOAuth2AuthorizationCodeFlow() m_handler = None
接下来是OAuth设置(为简洁起见,省略了错误处理):
m_oauth.setAuthorizationUrl(QUrl("https://some.authorization.service/v3/authorize")) m_oauth.setAccessTokenUrl(QUrl("https://some.authorization.service/v3/access_token")) m_oauth.setClientIdentifier("a_client_id") m_oauth.setScope("read") m_handler = QOAuthHttpServerReplyHandler(1234, self) m_oauth.authorizeWithBrowser.connect(self.openUrl) m_oauth.granted.connect(this, [this]() { # Here we use QNetworkRequestFactory to store the access token m_api.setBearerToken(m_oauth.token().toLatin1()) m_handler.close() })
最后,我们设置了URI方案回复处理程序:
m_oauth.setReplyHandler(m_handler) # Initiate the authorization if m_handler.isListening(): m_oauth.grant()
IPv4 和 IPv6¶
目前,如果处理程序是回环地址、IPv4任意地址或IPv6任意地址,使用的回调形式为http://localhost:{port}/{path}。否则,对于特定的IP地址,使用实际的IP字面量。例如,在IPv4的情况下为http://192.168.0.2:{port}/{path}。
使用
parent
作为父对象构造一个QOAuthHttpServerReplyHandler
对象。使用端口0
和地址Null调用listen()
。另请参阅
- __init__(port[, parent=None])
- Parameters:
port – int
parent –
QObject
使用
parent
作为父对象构造一个QOAuthHttpServerReplyHandler
对象。使用port
和地址Null调用listen()
。另请参阅
- __init__(address, port[, parent=None])
- Parameters:
地址 –
QHostAddress
port – int
parent –
QObject
使用
parent
作为父对象构造一个QOAuthHttpServerReplyHandler
对象。使用address
和port
调用listen()
。另请参阅
- callbackPath()¶
- Return type:
字符串
返回用作
callback()
/ OAuth2 redirect_uri parameter路径组件的路径。另请参阅
- callbackText()¶
- Return type:
字符串
返回在授权阶段结束时用于响应重定向的文本。
文本被包裹在一个简单的HTML页面中,并通过执行重定向的浏览器/用户代理显示给用户。
默认文本是
Callback received. Feel free to close this page.
另请参阅
- close()¶
告诉此处理程序停止监听连接/重定向。
另请参阅
- isListening()¶
- Return type:
布尔
如果此处理程序当前正在监听,则返回
true
,否则返回false
。- listen([address=QHostAddress.Any[, port=0]])¶
- Parameters:
地址 –
QHostAddress
port – int
- Return type:
布尔
告诉此处理程序监听
address
和port
上的传入连接/重定向。如果监听成功,则返回true
,否则返回false
。只有在执行初始授权阶段时,才需要主动监听,通常由
grant()
调用启动。建议在成功授权后关闭监听器。对于
请求 访问 令牌
或刷新它们,不需要监听。如果此函数以 Null 作为
address
调用,处理程序将尝试监听 LocalHost,如果失败,则监听 LocalHostIPv6。另请参阅
IPv4 和 IPv6
。另请参阅
- port()¶
- Return type:
整数
返回此处理程序正在监听的端口,否则返回0。
另请参阅
- setCallbackPath(path)¶
- Parameters:
路径 – 字符串
设置
path
作为callback()
的路径组件。另请参阅
- setCallbackText(text)¶
- Parameters:
文本 – str
设置
text
以用于在授权阶段结束时响应重定向。另请参阅