身份验证处理程序#
身份验证处理程序插件挂钩允许插件作者在 Conda 中启用新的身份验证模式。注册的身份验证处理程序可用于通过 .condarc
文件中的 channel_settings
配置选项在每个通道的基础上进行配置。
身份验证处理程序是 ChannelAuthBase
类的子类,该类本身是 requests.auth.AuthBase 的子类。 ChannelAuthBase
类为 requests.auth.AuthBase 类添加了额外的 channel_name
属性。 这是在 Conda 中适当地处理基于通道的身份验证所必需的。
有关如何实现自己的身份验证处理程序的更多信息,请阅读关于 自定义身份验证 的请求文档。
- class CondaAuthHandler#
在定义 Conda 身份验证处理程序挂钩时要使用的返回类型。
- 参数::
name -- 名称(例如,
basic-auth
)。 此名称应唯一,并且一次只能注册一个。handler -- 在网络请求期间将用作身份验证处理程序的类型。
- handler#
- name#
- conda_auth_handlers()#
注册源自请求 API 的 Conda 身份验证处理程序。
此插件挂钩允许附加请求身份验证处理程序子类,例如在针对托管在 HTTP/HTTPS 服务上的单个通道进行身份验证请求时。
示例
import os from conda import plugins from requests.auth import AuthBase class EnvironmentHeaderAuth(AuthBase): def __init__(self, *args, **kwargs): self.username = os.environ["EXAMPLE_CONDA_AUTH_USERNAME"] self.password = os.environ["EXAMPLE_CONDA_AUTH_PASSWORD"] def __call__(self, request): request.headers["X-Username"] = self.username request.headers["X-Password"] = self.password return request @plugins.hookimpl def conda_auth_handlers(): yield plugins.CondaAuthHandler( name="environment-header-auth", auth_handler=EnvironmentHeaderAuth, )