首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AuthKit中的这段代码是做什么的?(这些函数和方法在哪里定义的?)

AuthKit中的这段代码是做什么的?(这些函数和方法在哪里定义的?)
EN

Stack Overflow用户
提问于 2010-03-18 09:09:27
回答 1查看 108关注 0票数 0

我正在尝试implement my own authentication method for AuthKit,并试图弄清楚一些内置方法是如何工作的。特别是,我正在尝试弄清楚如何正确地更新environREMOTE_USER

这就是在authkit.authenticate.basic中处理它的方式,但它非常令人困惑。我找不到任何定义了REMOTE_USERAUTH_TYPE的地方。这里发生了什么奇怪的事情吗?如果有,是什么?

代码语言:javascript
复制
def __call__(self, environ, start_response):
    environ['authkit.users'] = self.users
    result = self.authenticate(environ)
    if isinstance(result, str):
        AUTH_TYPE.update(environ, 'basic')
        REMOTE_USER.update(environ, result)
    return self.application(environ, start_response)

实际上有很多像这样的大写字母,我找不到它的定义。例如,AUTHORIZATION从何而来:

代码语言:javascript
复制
def authenticate(self, environ):
    authorization = AUTHORIZATION(environ)
    if not authorization:
        return self.build_authentication()
    (authmeth, auth) = authorization.split(' ',1)
    if 'basic' != authmeth.lower():
        return self.build_authentication()
    auth = auth.strip().decode('base64')
    username, password = auth.split(':',1)
    if self.authfunc(environ, username, password):
        return username
    return self.build_authentication()

我觉得我可能遗漏了Python的一些特殊语法处理,但可能还有一些非常奇怪的事情,对于像我这样刚接触environ的人来说并不是很明显。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-18 10:09:16

看看那个来源,我发现它有一个(邪恶的)

代码语言:javascript
复制
from paste.httpheaders import *

这是另一种方式-神秘的名字可能突然出现在代码中(这就是为什么这个习惯用法是一个非常非常糟糕的做法)。我不能确定这些标识符是如何突然莫名其妙地出现的,但这是有可能的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2467013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档