OpenID混合
- class oauthlib.openid.connect.core.grant_types.HybridGrant(request_validator=None, **kwargs)[源代码]
- add_id_token(token, token_handler, request)[源代码]
构造一个初始版本的id_Token,并让请求验证器对其进行签名或加密。
根据规范,初始版本可以包含以下字段:-aud-iat-nonce-at_hash-c_hash
- id_token_hash(value, hashfunc=<built-in function openssl_sha256>)
其值是ACCESS_TOKE值的ASCII表示的八位字节散列的最左半部分的Bas64url编码,其中使用的散列算法是ID令牌的Jose标头的ALG标头参数中使用的散列算法。
例如,如果ALG是RS256,则使用SHA-256散列ACCESS_TOKEN值,然后取最左边的128位并对它们进行Bas64url编码。例如,如果ALG是HS512,则使用SHA-512散列代码值,然后取最左边的256位并对它们进行Bas64url编码。C_hash值是区分大小写的字符串。
来自OIDC规范的散列示例(使用RS256绑定到JWS):
代码:Qcb0Orv1zh30vL1MPRsbm-diHiMwcLyZvn1arpZv-Jxf_11jnpEX3Tgfvk
C_HASH:LDktKdoQak3Pk0cnXxCltA
- validate_authorization_request(request)
验证OpenID连接授权请求参数。
- 返回:
(作用域列表,请求信息字典)