如何从fiware lab获取令牌以访问放置在PeP代理后面的上下文代理?

如何从fiware lab获取令牌以访问放置在PeP代理后面的上下文代理?,fiware,fiware-orion,Fiware,Fiware Orion,我尝试使用这个curl命令的逻辑: curl -s --insecure -i --header ${AUTH_BASIC} --header ${CONTENT_TYPE} -X POST https://idm/oauth2/token -d ${DATA}" XAUTH_TOKEN="$(eval ${REQUEST} | grep -Po '(?<="access_token": ")[^"]*')" echo "X-Auth-Token for '${_user}

我尝试使用这个curl命令的逻辑:

curl -s --insecure -i --header ${AUTH_BASIC} --header ${CONTENT_TYPE} -X POST https://idm/oauth2/token -d ${DATA}"
    XAUTH_TOKEN="$(eval ${REQUEST} | grep -Po '(?<="access_token": ")[^"]*')"
    echo "X-Auth-Token for '${_user}': ${XAUTH_TOKEN}
curl-s--unsecure-i--header${AUTH\u BASIC}--header${CONTENT\u TYPE}-X POSThttps://idm/oauth2/token -d${DATA}”

XAUTH_TOKEN=“$(eval${REQUEST}}grep-Po'(?没有足够的细节来调试它,但是当请求的格式不正确时,KeyRock返回
400
。您应该得到KeyRock返回的消息。但是,通过此请求,您可以得到code
400
,如果:

  • Authorization:Basic
    标题缺失,在这种情况下,您将获得:

    HTTP/1.1 400 BAD REQUEST
    Date: Thu, 10 Sep 2015 08:43:25 GMT
    Server: Apache/2.4.7 (Ubuntu)
    Vary: Accept-Language,Cookie
    X-Frame-Options: SAMEORIGIN
    Content-Language: en
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: text/html; charset=utf-8
    
    Authentication header missing. Use HTTP Basic.
    
    HTTP/1.1 400 Bad Request
    Date: Thu, 10 Sep 2015 08:47:49 GMT
    Server: Apache/2.4.7 (Ubuntu)
    Vary: Accept-Language,Cookie
    X-Frame-Options: SAMEORIGIN
    Content-Language: en
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: application/json
    
    {"error": {"message": "create_access_token() takes exactly 3 arguments (2 given)", "code": 400, "title": "Bad Request"}}
    
  • 请求正文(即您的
    输入2
    )未被发送,在这种情况下,您将获得:

    HTTP/1.1 400 BAD REQUEST
    Date: Thu, 10 Sep 2015 08:43:25 GMT
    Server: Apache/2.4.7 (Ubuntu)
    Vary: Accept-Language,Cookie
    X-Frame-Options: SAMEORIGIN
    Content-Language: en
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: text/html; charset=utf-8
    
    Authentication header missing. Use HTTP Basic.
    
    HTTP/1.1 400 Bad Request
    Date: Thu, 10 Sep 2015 08:47:49 GMT
    Server: Apache/2.4.7 (Ubuntu)
    Vary: Accept-Language,Cookie
    X-Frame-Options: SAMEORIGIN
    Content-Language: en
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: application/json
    
    {"error": {"message": "create_access_token() takes exactly 3 arguments (2 given)", "code": 400, "title": "Bad Request"}}
    
  • 您的请求正文中未定义授予类型

HTTP/1.1 400 Bad Request
Date: Thu, 10 Sep 2015 08:52:58 GMT
Server: Apache/2.4.7 (Ubuntu)
Vary: Accept-Language,Cookie
X-Frame-Options: SAMEORIGIN
Content-Language: en
Connection: close
Transfer-Encoding: chunked
Content-Type: application/json

{"error": {"message": "grant_type missing in request body: {}", "code": 400, "title": "Bad Request"}}

很好,我们将看到堆栈跟踪显示的内容。同时,您是否知道令牌会话的长度?我们从运行pep代理的机器本地生成令牌,并将其转发到运行C代码的机器,该机器可以正常工作。自生成令牌a以来,这已经超过24小时了nd我们想知道它什么时候过期?长度取决于您想要的是令牌的长度还是
内容长度
。默认情况下,令牌
“过期\u in”:3600
我的意思是当它过期时。当令牌过期时,我没有触摸任何配置,这意味着我不应该在一小时后使用相同的令牌?但在这里,我使用的是24小时前生成的令牌。对于最初的问题,我们无法生成错误来诊断问题,我们只能生成:HTTP/1.1400错误请求日期:2015年9月10日星期四08:52:58 GMT服务器:Apache/2.4.7(Ubuntu)Vary:Accept Language,Cookie X-Frame-Options:SAMEORIGIN Content Language:en Connection:close Transfer Encoding:chunked Content Type:application/json过期时间如下所示。对于请求,您粘贴的是响应头,而不是正文。正文是确定错误的主体,(如您所见,JSON)正如它在
内容类型中所说的那样;因此,这应该是我在回答中解释的第二个或第三个选项。我找到了错误主体,它是第三个“grant_type missing”。您能建议一个解决方案吗?如您所见,我们正在请求的开头传递grant类型。