Kalliope PBX登录和通信模块
kalliopepbx的Python项目详细描述
Python-KalliopePBX身份验证模块
Kalliope PBX服务器的通信模块
(有关详细信息,请参见Kalliope PBX)。在
重要的
实验性
只在本地进行测试,而不是针对适当的Kalliope服务器进行的
不是Kalliope或Netresult S.r.l.的官方项目。
安装
要使用pip
从Pypi安装:
pip install kalliopepbx
或者直接从git源安装:
^{pr2}$要在系统范围内安装kalliopepbx
,请从最后一个系统中删除--user
行并使用sudo
或其他子系统作为
特权用户。在
使用示例
fromkalliopepbximportSessionendpoint="http://user:password@192.168.1.1/"conn=Session(endpoint)accounts=conn.get("/rest/account").json()print(accounts)
会议
事件尽管Kalliope服务器不支持会话对象 帮助在每个请求上重新生成所需的身份验证头。在
要创建新会话,请使用以下格式的连接字符串:
Session("scheme://user:password@host:port/tenants_domain")
其中:
- ^{str1}$
scheme
是http
或{}(默认值:“http”) user
和password
是凭据(可选)host
是主机名或ip地址port
是要连接的端口(可选)- ^{str1}$
tenants_domain
是租户的域(默认值:“default”)。在
如果没有指定方案,则使用默认方案(http
),但是
请注意,您仍然需要将双斜杠放在
符合RFC 1808的url。在
用户名和密码必须同时存在或都丢失。如果你愿意的话
要稍后提供凭据,请使用Session.login
。没有登录
任何请求都将在未经验证的情况下执行。在
默认租户的域是“default
”。在
conn=Session("http://admin:nimda@192.168.1.1")response1=conn.get("/rest/dashboard")response2=conn.get("/rest/account")print("Req 1:",response1.request.headers["X-authenticate"])print("Req 2:",response2.request.headers["X-authenticate"])
Req 1: RestApiUsernameToken Username="admin", Domain="default", Digest="FLExUJyV4pPMr20o6e7TorEsdfZxkqvJcBNCe1nxecE=", Nonce="2dc477ac10d6c07b3fe008f636037733", Created="2020-10-30T15:33:04Z"
Req 2: RestApiUsernameToken Username="admin", Domain="default", Digest="69jCdIIXk0pT/f6CJZB9E+UacP2fnFVFMBqUuYIbGhs=", Nonce="33e79f33fbc4ac535ed3183dfac97de6", Created="2020-10-30T15:33:08Z"
授权
kalliopepbx.Auth
是一个独立的类,可用于
生成给定凭据和salt
值的头。在
fromkalliopepbximportAuthsalt=fetch_salt_value(...)# 5ebe2294ecd0e0f08eab7690d2a6ee69auth=Auth("admin","nimda","default",salt)print(auth.xauth())
{'X-authenticate':'RestApiUsernameToken Username="admin", Domain="default", Digest="8V5nQKp9GoCvhv5J+s3REprWXvH0txZJwmZdaKoJAyQ=", Nonce="62f230121d1d99cef5c8cb83c96cf6c4", Created="2020-10-30T15:33:12Z"'}
方法Auth.xauth
返回一个带有新生成标记的dict
为下一代重新设置自己。在
必须在创建
对象或在瞬间设置它(auth.salt = value
)。在
出于测试目的,重置阶段可以用
reset=False
。为了快速检查值,还可以打印
Auth
对象实例,即print(auth)
X-authenticate: RestApiUsernameToken Username="admin", Domain="default", Digest="8V5nQKp9GoCvhv5J+s3REprWXvH0txZJwmZdaKoJAyQ=", Nonce="62f230121d1d99cef5c8cb83c96cf6c4", Created="2020-10-30T15:33:12Z"
卡莱赫3>
requests.AuthBase
实现由kalliopepbx.Session
用于
更新请求的标头。它是在登录时由kalliopepbx.Session
创建的
本身。salt值将自动从服务器获取。在
许可证
本软件发布于
LGPLv3
GNU通用公共许可证第3版,2007年6月29日。在
- 项目
标签: