授权(Authorization)

装饰器能有助于检查某个人是否被授权去使用一个web应用的端点(endpoint)。它们被大量使用于Flask和Django web框架中。这里是一个例子来使用基于装饰器的授权:

  1. from functools import wraps
  2. def requires_auth(f):
  3. @wraps(f)
  4. def decorated(*args, **kwargs):
  5. auth = request.authorization
  6. if not auth or not check_auth(auth.username, auth.password):
  7. authenticate()
  8. return f(*args, **kwargs)
  9. return decorated