Ansible uri用Django JWT令牌调用

时间:2017-12-27 21:21:24

标签: django testing jenkins ansible

我想用ansible调用django服务器:

我打过电话:

- name: Check status 200
    uri:
      url: https://{{ rest_server }}/api/users/api-token-auth/
      method: POST
      headers:
        Content-Type: "application/json"
      body: '{"username": "username", "password": "password"}'
      return_content: yes

    register: token

我得到了令牌。现在我想使用此令牌进行下一次调用,但我无法弄清楚这是如何工作的....

我试试

- name: Check that LOGIN returns a status 200
  uri:
    url: https://{{ rest_server }}/api/users/auth/
    method: POST
    headers:
      Content-Type: "application/json"
      Authorization: "JWT {{ token.content[token] }}"
    body: '{"username": "user", "password": "pass"}'
    return_content: yes

  register: webpage

但我收到错误:

  

" msg":"该任务包含一个带有未定义变量的选项。错误是:ansible.utils.unsafe_proxy.AnsibleUnsafeText对象没有元素{u' cookies':{},u'变化':u'接受',u' access_control_allow_headers':u'访问控制 - 允许 - 来源,内容类型,X-CSRFToken,授权,访问权限,内容 - 处理',访问控制方法':你' ; GET,DELETE,POST,PUT,OPTIONS',' access_control_allow_credentials':' true',u' content':u' {\&#34 ;令牌\":\" eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Im1hcmtvLnphZHJhdmVjQHJlc3VsdC5zaSIsImV4cCI6MTUxNTAxNDE1OSwidXNlcl9pZCI6NCwidXNlcm5hbWUiOiJtYXJrby56YWRyYXZlY0ByZXN1bHQuc2kifQ.otlXbiuXnDJPiLrEKdMTKBgBMbvIGApBVH_aPI5mSd4 \"}&#39 ;,'失败&#39 ;:假,U' JSON&#39 ;: { ü'标记':U' eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Im1hcmtvLnphZHJhdmVjQHJlc3VsdC5zaSIsImV4cCI6MTUxNTAxNDE1OSwidXNlcl9pZCI6NCwidXNlcm5hbWUiOiJtYXJrby56YWRyYXZlY0ByZXN1bHQuc2kifQ.otlXbiuXnDJPiLrEKdMTKBgBMbvI GApBVH_aPI5mSd4'},....

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

uri模块将content作为字符串返回。

使用{{ (token.content | from_json).token }}{{ token.json.token }}