身份验证处理程序#
身份验证处理程序插件钩子允许插件作者在 conda 中启用新的身份验证模式。注册的身份验证处理程序将可以通过 .condarc
文件中的 channel_settings
配置选项在每个频道的基础上进行配置。
身份验证处理程序是 ChannelAuthBase
类的子类,该类本身是 requests.auth.AuthBase 的子类。ChannelAuthBase
类向 requests.auth.AuthBase 类添加了一个额外的 channel_name
属性。这对于在 conda 中适当处理基于频道的身份验证是必要的。
有关如何实现您自己的身份验证处理程序的更多信息,请阅读 requests 文档中关于 自定义身份验证 的部分。
- class CondaAuthHandler#
定义 conda 身份验证处理程序钩子时使用的返回类型。
- 参数:
name -- 名称 (例如,
basic-auth
)。此名称应该是唯一的,并且一次只能注册一个。handler -- 将在网络请求期间用作身份验证处理程序的类型。
- handler#
- name#
- conda_auth_handlers()#
注册一个从 requests API 派生的 conda 身份验证处理程序。
此插件钩子允许附加 requests 身份验证处理程序子类,例如,当针对 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", handler=EnvironmentHeaderAuth, )