header 中的 Cherrypy 基本授权 -
Cherrypy Basic Authorization in header -
我查看了 http://cherrypy.readthedocs.io/en/latest/basics.html#authentication 上的文档,以了解如何将我的 API 调用发送到 Cherrypy 并验证我将在 header 我将从我的客户端程序发送的 HTTP 请求。
header 将遵循具有以下示例键和值的 header 的基本授权
示例:授权:基本 YWxhZGRpbjpvcGVuc2VzYW1l
然后我想要仅在某些授权完成后才写入 运行 的 Cherrypy 函数。
从客户端,我会这样调用我的函数:
https:///myfunction?param1=value¶m2=value¶m3=value
基本授权 header 如上所示设置
在 Cherrypy 中,我将编写如下函数代码:
@cherrypy.expose
def myfunction(self, param1=1,param2=cat,param3=dog):
# do my work in the function
return
注意:该函数不会让用户输入任何凭据。该调用将以编程方式 pre-populate 基本授权 header。
你能否以这种方式设置 Cherrypy 代码示例,以明确地向我展示如何实现这一目标。假设是 Cherrypy 的初学者(例如只完成了前 5 个左右的教程(http://docs.cherrypy.org/en/latest/tutorials.html#tutorials))。
非常感谢。
import cherrypy
def check_auth():
needs_auth = cherrypy.request.config.get('auth.require', False)
if needs_auth and not cherrypy.request.headers.get('X-HTTP-APIKEY', None) =="1234":
raise cherrypy.HTTPError(401)
cherrypy.tools.auth = cherrypy.Tool('before_handler', check_auth, priority=50)
def needsauth():
'''A decorator that sets auth.require config
variable.'''
def decorate(f):
if not hasattr(f, '_cp_config'):
f._cp_config = dict()
if 'auth.require' not in f._cp_config:
f._cp_config['auth.require'] = []
f._cp_config['auth.require'] = True
return f
return decorate
class main(object):
_cp_config = {'tools.auth.on': True,}
@cherrypy.expose
@needsauth()
def myfunction(self):
print 1
return '<html>Hi</html>'
cherrypy.quickstart(main())
我查看了 http://cherrypy.readthedocs.io/en/latest/basics.html#authentication 上的文档,以了解如何将我的 API 调用发送到 Cherrypy 并验证我将在 header 我将从我的客户端程序发送的 HTTP 请求。 header 将遵循具有以下示例键和值的 header 的基本授权 示例:授权:基本 YWxhZGRpbjpvcGVuc2VzYW1l
然后我想要仅在某些授权完成后才写入 运行 的 Cherrypy 函数。 从客户端,我会这样调用我的函数: https:///myfunction?param1=value¶m2=value¶m3=value 基本授权 header 如上所示设置
在 Cherrypy 中,我将编写如下函数代码:
@cherrypy.expose
def myfunction(self, param1=1,param2=cat,param3=dog):
# do my work in the function
return
注意:该函数不会让用户输入任何凭据。该调用将以编程方式 pre-populate 基本授权 header。
你能否以这种方式设置 Cherrypy 代码示例,以明确地向我展示如何实现这一目标。假设是 Cherrypy 的初学者(例如只完成了前 5 个左右的教程(http://docs.cherrypy.org/en/latest/tutorials.html#tutorials))。 非常感谢。
import cherrypy
def check_auth():
needs_auth = cherrypy.request.config.get('auth.require', False)
if needs_auth and not cherrypy.request.headers.get('X-HTTP-APIKEY', None) =="1234":
raise cherrypy.HTTPError(401)
cherrypy.tools.auth = cherrypy.Tool('before_handler', check_auth, priority=50)
def needsauth():
'''A decorator that sets auth.require config
variable.'''
def decorate(f):
if not hasattr(f, '_cp_config'):
f._cp_config = dict()
if 'auth.require' not in f._cp_config:
f._cp_config['auth.require'] = []
f._cp_config['auth.require'] = True
return f
return decorate
class main(object):
_cp_config = {'tools.auth.on': True,}
@cherrypy.expose
@needsauth()
def myfunction(self):
print 1
return '<html>Hi</html>'
cherrypy.quickstart(main())