Ansible uri用Django JWT令牌调用

问题描述 投票:1回答:1

我想用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'vary':u'Accept',u 'access_control_allow_headers':u'Access-Control-Allow-Origin,Content-Type,X-CSRFToken,Authorization,Access-Bw,Content-Disposition',u'access_control_allow_methods':u'GET,DELETE,POST,PUT,OPTIONS' ,u'access_control_allow_credentials ':u'true',u'content ':U'{\ “标记\”:\ “eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Im1hcmtvLnphZHJhdmVjQHJlc3VsdC5zaSIsImV4cCI6MTUxNTAxNDE1OSwidXNlcl9pZCI6NCwidXNlcm5hbWUiOiJtYXJrby56YWRyYXZlY0ByZXN1bHQuc2kifQ.otlXbiuXnDJPiLrEKdMTKBgBMbvIGApBVH_aPI5mSd4 \”} ' '失败':假,u'json':【U '令牌':u'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6Im1hcmtvLnphZHJhdmVjQHJlc3VsdC5zaSIsImV4cCI6MTUxNTAxNDE1OSwidXNlcl9pZCI6NCwidXNlcm5hbWUiOiJtYXJrby56YWRyYXZlY0ByZXN1bHQuc2kifQ.otlXbiuXnDJPiLrEKdMTKBgBMbvIGApBVH_aPI5mSd4' } ....

做正确的方法是什么?

django testing jenkins ansible
1个回答
3
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.