自定义验证器
当您想要更改现有授权的特定行为时,自定义验证器非常有用。这往往是必要的,因为身份识别软件的多样性,并使oauthlib框架尽可能灵活。
但是,如果您正在考虑编写自定义授权类型,请参阅 Custom Grant Type 取而代之的是。
- class oauthlib.oauth2.rfc6749.grant_types.base.ValidatorsContainer(post_auth, post_token, pre_auth, pre_token)[源代码]
容器对象,用于保存要作为授权类型的一部分调用的自定义验证器可调用对象 validate_authorization_request() 或 validate_authorization_request() 关于各种赠款类型的方法。
授权验证器必须是接受请求对象并返回字典的可调用函数,该字典可能包含要添加到 request_info 验证后从GRANT_TYPE返回。
令牌验证器必须是接受请求对象并不返回任何对象的可调用函数。
如果验证条件失败,授权验证器和令牌验证器都可能引发OAuth2异常。
授权验证器添加到 pre_auth 将在标准验证之前(但在引发致命错误的关键验证之后)作为 validate_authorization_request()
授权验证器添加到 post_auth 将在标准验证之后运行,作为 validate_authorization_request()
令牌验证器已添加到 pre_token 将在标准验证之前运行,作为 validate_token_request()
令牌验证器已添加到 post_token 将在标准验证之后运行,作为 validate_token_request()
例如:
>>> def my_auth_validator(request): ... return {'myval': True} >>> auth_code_grant = AuthorizationCodeGrant(request_validator) >>> auth_code_grant.custom_validators.pre_auth.append(my_auth_validator) >>> def my_token_validator(request): ... if not request.everything_okay: ... raise errors.OAuth2Error("uh-oh") >>> auth_code_grant.custom_validators.post_token.append(my_token_validator)