Spyne支持用户身份验证?

时间:2017-09-09 15:51:11

标签: authentication login spyne

我是Sypne的新手,想建立一个网络服务,但不向所有人开放,只对指定的用户开放。 是否需要任何支持文档,示例或任何其他包? 我使用Django作为Web框架。 谢谢!

1 个答案:

答案 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 

别忘了测试您的系统身份验证。