PySide6.QtNetworkAuth.QOAuth2授权码流程¶
- class QOAuth2AuthorizationCodeFlow¶
QOAuth2AuthorizationCodeFlow
类提供了 Authorization Code Grant 流程的实现。更多…概要¶
属性¶
accessTokenUrlᅟ
- 此属性保存用于转换在授权响应期间接收到的临时代码的URL
方法¶
def
__init__()
def
accessTokenUrl()
def
pkceMethod()
def
setPkceMethod()
插槽¶
信号¶
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
该类实现了Authorization Code Grant流程,该流程用于获取和刷新访问令牌。这是一个基于重定向的流程,因此用户需要访问网络浏览器。
作为一个基于重定向的流程,此类需要设置一个适当的回复处理程序。请参阅 Qt OAuth2 概述、
QOAuthHttpServerReplyHandler
和QOAuthUriSchemeReplyHandler
。- class PkceMethod¶
可用的Proof Key for Code Exchange (PKCE) 方法列表。
PKCE 是一种安全措施,用于减轻授权代码拦截攻击的风险。因此,它与 OAuth2 的“授权代码”流程(授权)相关,特别是与原生应用程序相关。
PKCE 在授权和访问令牌请求中插入额外的参数。通过这些参数的帮助,授权服务器能够验证访问令牌请求是否源自发出授权请求的同一实体。
常量
描述
QOAuth2AuthorizationCodeFlow.PkceMethod.None
未使用PKCE。
QOAuth2AuthorizationCodeFlow.PkceMethod.Plain
使用了Plain PKCE方法。只有在无法使用S256时才使用此方法。使用Plain方法时,code challenge等于code verifier。
QOAuth2AuthorizationCodeFlow.PkceMethod.S256
使用了S256 PKCE方法。这是原生应用程序的默认和推荐方法。使用S256方法时,code challenge是code verifier的SHA-256的base64url编码值。
在版本6.8中添加。
注意
当使用
from __feature__ import true_property
时,属性可以直接使用,否则通过访问器函数使用。此属性保存用于转换在授权响应期间接收到的临时代码的URL。
另请参阅: Access Token Request
- Access functions:
构造一个带有父对象
parent
的QOAuth2AuthorizationCodeFlow
对象。- __init__(manager[, parent=None])
- Parameters:
manager –
QNetworkAccessManager
parent –
QObject
使用
parent
作为父对象构造一个QOAuth2AuthorizationCodeFlow
对象,并将manager
设置为网络访问管理器。- __init__(clientIdentifier, manager[, parent=None])
- Parameters:
clientIdentifier – str
manager –
QNetworkAccessManager
parent –
QObject
使用
parent
作为父对象构造一个QOAuth2AuthorizationCodeFlow
对象,并将manager
设置为网络访问管理器。客户端标识符设置为clientIdentifier
。- __init__(authorizationUrl, accessTokenUrl, manager[, parent=None])
- Parameters:
authorizationUrl –
QUrl
accessTokenUrl –
QUrl
manager –
QNetworkAccessManager
parent –
QObject
使用
parent
作为父对象构造一个QOAuth2AuthorizationCodeFlow
对象,并将manager
设置为网络访问管理器。认证URL设置为authenticateUrl
,访问令牌URL设置为accessTokenUrl
。- __init__(clientIdentifier, authorizationUrl, accessTokenUrl, manager[, parent=None])
- Parameters:
clientIdentifier – str
authorizationUrl –
QUrl
accessTokenUrl –
QUrl
manager –
QNetworkAccessManager
parent –
QObject
使用
parent
作为父对象构造一个QOAuth2AuthorizationCodeFlow
对象,并将manager
设置为网络访问管理器。客户端标识符设置为clientIdentifier
,认证URL设置为authenticateUrl
,访问令牌URL设置为accessTokenUrl
。返回用于请求访问令牌的URL。
另请参阅
属性
accessTokenUrlᅟ
的获取器。属性
accessTokenUrlᅟ
的通知信号。- buildAuthenticateUrl([parameters={}])¶
- Parameters:
参数 – .QMultiMapQString,QVariant
- Return type:
生成一个用于授权请求的认证URL,使用
parameters
。- pkceMethod()¶
- Return type:
返回当前的PKCE方法。
- refreshAccessToken()¶
调用此函数以刷新令牌。访问令牌不是永久性的。在获取访问令牌时指定的时间后,访问令牌将失效。
如果刷新令牌失败且存在访问令牌,状态将设置为
Granted
,否则设置为NotAuthenticated
。另请参阅
- requestAccessToken(code)¶
- Parameters:
code – str
从接收到的
code
请求访问令牌。当用户在浏览器中成功完成身份验证时,code
会作为响应接收。将用于请求访问令牌的URL设置为
accessTokenUrl
。另请参阅
属性
accessTokenUrlᅟ
的设置器。- setPkceMethod(method[, length=43])¶
- Parameters:
method –
PkceMethod
length – int
将当前的PKCE方法设置为
method
。可选地,
length
参数可用于设置code_verifier
的长度。该值必须在43到128字节之间。‘code verifier’本身是由库随机生成的。另请参阅