我是Sypne的新手,想建立一个网络服务,但不向所有人开放,只对指定的用户开放。 是否需要任何支持文档,示例或任何其他包? 我使用Django作为Web框架。 谢谢!
答案 0 :(得分:0)
有关信息,这是spyne文档的链接。 http://spyne.io/docs/2.10/
您可以按照文档中的说明使用装饰器进行身份验证。 http://spyne.io/docs/2.10/manual/04_usermanager.html#decorators-and-rpc。
from decorator import decorator
def _check_authentication(func, *args, **kw):
print ("before call")
ctx = args[0] # Get the ctx
# Check if the token is in the header
token = ctx.transport.req.get("HTTP_TOKEN")
if token is None or token != "the_token_needed":
return "Authentication failed"
# Call the function
result = func(*args, **kw)
print ("after call")
return result
def check_authentication(f):
return decorator(_check_authentication, f)
class MyService(ServiceBase):
@rpc(String, _returns=String)
@check_authentication
def service_function(ctx, order_id):
# Here is your logic if the user is authenticated
别忘了测试您的系统身份验证。