身份验证处理程序#

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