codecamp

CherryPy 基本认证工具

此工具的目的是为应用程序中设计的应用程序提供基本身份验证。

参数 (Arguments)

此工具使用以下参数 -

名称默认描述
realmN/A定义领域值的字符串。
usersN/A表单的字典 - 用户名:密码或返回此类字典的Python可调用函数。
encryptNonePython callable用于加密客户端返回的密码,并将其与用户词典中提供的加密密码进行比较。

例子 (Example)

让我们举一个例子来了解它是如何工作的 -

import sha
import cherrypy
class Root:
@cherrypy.expose
def index(self):
return """
<html>
   <head></head>
   <body>
      <a href = "admin">Admin </a>
   </body>
</html>
""" 
class Admin:
@cherrypy.expose
def index(self):
return "This is a private area"
if __name__ == '__main__':
def get_users():
# 'test': 'test'
return {'test': 'b110ba61c4c0873d3101e10871082fbbfd3'}
def encrypt_pwd(token):
return sha.new(token).hexdigest()
   conf = {'/admin': {'tools.basic_auth.on': True,
      tools.basic_auth.realm': 'Website name',
      'tools.basic_auth.users': get_users,
      'tools.basic_auth.encrypt': encrypt_pwd}}
   root = Root()
root.admin = Admin()
cherrypy.quickstart(root, '/', config=conf)

get_users函数返回一个硬编码字典,但也从数据库或其他任何地方获取值。 类admin包含此函数,该函数使用CherryPy的身份验证内置工具。 身份验证加密密码和用户ID。

基本身份验证工具并不十分安全,因为密码可以由入侵者编码和解码。

CherryPy 多线程应用程序服务器
CherryPy 缓存工具
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

CherryPy 一个工作应用程序

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }