authentication.rst 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. ============
  2. 接口调用鉴权
  3. ============
  4. Loonflow作为工作流引擎,正确是的使用姿势是各个系统的后端通过http api调用按照各自的需求来完成工单展示、工单新建、工单处理逻辑
  5. 在loonflow的管理后台中"账户-调用token"中新新增记录.填写调用方app_name新增后会生成一个签名token.调用方将签名信息写到
  6. http header中来调用具体的api 签名算法如下:
  7. ::
  8. import time
  9. timestamp = str(time.time())[:10]
  10. ori_str = timestamp + token
  11. signature = hashlib.md5(ori_str.encode(encoding='utf-8')).hexdigest()
  12. api调用:
  13. ::
  14. import requests
  15. headers = dict(signature=signature, timestamp=timestamp, appname=app_name, username=username)
  16. # get
  17. get_data = dict(per_page=20, category='all')
  18. r = requests.get('http://127.0.0.1:8000/api/v1.0/tickets', headers=headers, params=get_data)
  19. result = r.json()
  20. # post
  21. data = dict(target_username='lisi', suggestion='请协助提供更多信息')
  22. r = requests.post('http://127.0.0.1:8000/api/v1.0/tickets/{ticket_id}/add_node', headers=headers, json=data)
  23. result = r.json()
  24. # patch
  25. requsts.patch,传参同post
  26. # put
  27. requests.put, 传参同post
  28. 注意: 开发阶段如果需要在postman中测试接口,避免每次都需要重新生成签名,可以将service.permission.api_permission.ApiPermissionCheck中签名有效期改长些