身份验证处理程序#

身份验证处理程序插件钩子允许插件作者在 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,
    )