高级别问题:如何配置Crossbar通过可访问用户数据库的Web服务器验证WAMP客户端。
说明
使用crossbar dynamic authentication,WAMP节点(可以访问用户DB)可以注册认证功能,如下所示。
def authenticate(realm, authid, details):
## return credentials (secret + role) for user 'authid'
return {'secret': 'mypassword', 'role': 'sales'}
yield self.register(authenticate, 'com.example.authenticate')
当然,crossbar也会配置动态身份验证。
"auth": {
"wampcra": {
"type": "dynamic",
"authenticator": "com.example.authenticate"
}
}
就我而言,用户DB使用的是Django HTTP REST服务器,它不是常规的WAMP客户端。
但是,我发现交叉开关HTTP Bridge服务提供了这个HTTP Callee REST API。我看到你可以配置crossbar来注册一个WAMP程序(比如com.myapp.rest),它将请求发送到HTTP服务器(比如https://httpbin.org/),如下所示。
"type": "class",
"classname": "crossbar.adapter.rest.RESTCallee",
"realm": "realm1",
"extra": {
"procedure": "com.myapp.rest",
"baseurl": "https://httpbin.org/"
}
如上所述,我正在考虑按照以下方式为我的网络服务器提供身份验证功能(根据我的理解)。
看起来,它可以工作。
但是,我看到了从WAMP客户端调用该过程的特殊语法。
@inlineCallbacks
def onJoin(self, details):
res = yield self.call("com.myapp.rest",
method="GET",
url="",
params={
.....
})
与您调用常规RPC的方式不同
res = yield self.call(u'com.myapp.add2', 2, 3).
问题:是否可以按照我的提议(步骤1到3),使用crossbar从我的网络服务器请求身份验证信息。