0
我正在嘗試implement my own authentication method for AuthKit,並試圖弄清楚一些內置方法是如何工作的。特別是,我試圖找出如何正確更新environ
的REMOTE_USER
。AuthKit的這段代碼是做什麼的? (這些函數和方法在哪裏定義的?)
這是如何處理authkit.authenticate.basic
內部,但它很混亂。我找不到任何地方REMOTE_USER
和AUTH_TYPE
被定義。這裏有什麼奇怪的事情發生,如果是這樣,那是什麼?
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
來自如下:
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()
我覺得也許我錯過了一些特殊的語法處理爲environ
字典,但它有可能還有別的東西很奇怪的事情在這裏,ISN」對於像我自己一樣新興Python的人來說,這一點顯而易見。
看起來就像它是從哪裏來的。我希望我知道爲什麼'AUTH_TYPE.update(environ,'basic')'在當時似乎優於'environ ['AUTH_TYPE'] ='basic''(這實際上是少些字符) – 2010-03-18 04:12:06