PySide6.QtNetworkAuth.QOAuthHttpServerReplyHandler

class QOAuthHttpServerReplyHandler

通过设置本地HTTP服务器来处理回环重定向。更多

PySide6.QtNetworkAuth.QOAuthHttpServerReplyHandler 的继承图

概要

方法

注意

本文档可能包含从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}

__init__([parent=None])
Parameters:

父对象QObject

使用parent作为父对象构造一个QOAuthHttpServerReplyHandler对象。使用端口0和地址Null调用listen()

另请参阅

listen()

__init__(port[, parent=None])
Parameters:

使用parent作为父对象构造一个QOAuthHttpServerReplyHandler对象。使用port和地址Null调用listen()

另请参阅

listen()

__init__(address, port[, parent=None])
Parameters:

使用parent作为父对象构造一个QOAuthHttpServerReplyHandler对象。使用addressport调用listen()

另请参阅

listen()

callbackPath()
Return type:

字符串

返回用作callback() / OAuth2 redirect_uri parameter路径组件的路径。

另请参阅

setCallbackPath()

callbackText()
Return type:

字符串

返回在授权阶段结束时用于响应重定向的文本。

文本被包裹在一个简单的HTML页面中,并通过执行重定向的浏览器/用户代理显示给用户。

默认文本是

Callback received. Feel free to close this page.

另请参阅

setCallbackText()

close()

告诉此处理程序停止监听连接/重定向。

另请参阅

listen()

isListening()
Return type:

布尔

如果此处理程序当前正在监听,则返回 true,否则返回 false

另请参阅

listen() close()

listen([address=QHostAddress.Any[, port=0]])
Parameters:
Return type:

布尔

告诉此处理程序监听addressport上的传入连接/重定向。如果监听成功,则返回true,否则返回false

只有在执行初始授权阶段时,才需要主动监听,通常由grant()调用启动。

建议在成功授权后关闭监听器。对于请求 访问 令牌或刷新它们,不需要监听。

如果此函数以 Null 作为 address 调用,处理程序将尝试监听 LocalHost,如果失败,则监听 LocalHostIPv6。

另请参阅 IPv4 IPv6

port()
Return type:

整数

返回此处理程序正在监听的端口,否则返回0。

另请参阅

listen() isListening()

setCallbackPath(path)
Parameters:

路径 – 字符串

设置 path 作为 callback() 的路径组件。

另请参阅

callbackPath()

setCallbackText(text)
Parameters:

文本 – str

设置text以用于在授权阶段结束时响应重定向。

另请参阅

callbackText()