Oracle APEX oAuth:从第二次开始无法获取访问令牌/授权代码
我正在尝试使用授权代码ProcessFlow从Oracle Apex获取oAuth令牌 参考: 我采取了以下步骤: 1) 使用重定向URI在Apex中注册oAuth客户端并获得Oracle APEX oAuth:从第二次开始无法获取访问令牌/授权代码,oracle,oauth,oracle-apex,Oracle,Oauth,Oracle Apex,我正在尝试使用授权代码ProcessFlow从Oracle Apex获取oAuth令牌 参考: 我采取了以下步骤: 1) 使用重定向URI在Apex中注册oAuth客户端并获得 Client ID : MY_CLIENT_ID Client Secret : MY_CLIENT_SECRET Authorization URI : https://apex.oracle.com/pls/apex/MY_WORK/oauth2/auth?response_type=code&client_
Client ID : MY_CLIENT_ID
Client Secret : MY_CLIENT_SECRET
Authorization URI : https://apex.oracle.com/pls/apex/MY_WORK/oauth2/auth?response_type=code&client_id= MY_CLIENT_ID&client_secret= MY_CLIENT_SECRET &state=_replace_with_a_unique_value_
2) 当我在web浏览器中打开授权URI并单击“允许访问”时,我在URL中得到了授权代码:
3) 我在web主机中创建了一个PHP页面(),并使用带有以下参数的cURL从APEX服务器请求访问令牌
Client-ID:MY\u Client\u-ID
客户机密:我的客户机密
授权码:我的授权码
URI:https://apex.oracle.com/pls/apex/MY_WORK/oauth2/token
PHP代码:
<?php
//actual cURL
/*curl -i -d "grant_type=authorization_code&code= MY_CLIENT_ID " \
--user MY_CLIENT_SECRET : MY_AUTH_CODE \
https://apex.oracle.com/pls/apex/MY_WORK/oauth2/token*/
$pageurl = "https://apex.oracle.com/pls/apex/MY_WORK/oauth2/token";
$ch = curl_init($pageurl);
curl_setopt($ch, CURLOPT_HEADER, TRUE); // -i
curl_setopt($ch,CURLOPT_POST, 2);
curl_setopt($ch,CURLOPT_POSTFIELDS, "grant_type=authorization_code&code= MY_CLIENT_ID "); // -d
curl_setopt($ch,CURLOPT_USERPWD, " MY_CLIENT_SECRET : MY_AUTH_CODE "); // --user
$resp = curl_exec($ch);
curl_close($ch);
echo $resp;
?>
因此,我能够成功地获取访问令牌,但问题是当我试图通过打开PHP URL第二次获取访问令牌时http://server.com/oauth/index.php
我最终得到了无效的授权:{“error”:“Invalid_grant”}1
因此,我决定用PHP更新新的授权代码,我应该通过访问授权URI(如步骤2所示)来获得该代码,但最终导致400个错误请求
但是,如果从第一步开始做所有事情,它的工作很好,但在第二个请求中却出现了相同的问题
在我的应用程序中,我只想一次又一次地执行步骤4以获得新的令牌,这导致了上述问题
所以最后我想知道为什么我不能
1.如步骤3所示,使用授权代码第二次访问令牌
2.以及如步骤中所示,使用授权URI第二次输入授权代码
请给我一些建议,以编程方式从Oracle APEX获取ACCESS_令牌
{"access_token":"MY_ACCESS_TOKEN","token_type":"bearer","expires_in":36000,"refresh_token":" MY_REFRESH_ACCESS_TOKEN "}1