访问受保护的 Restful Web 服务

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

我使用 oracle apex 环境创建了一些 Rest Web 服务。并且需要从不同的数据库模式调用它。

(例如,我有 2 个模式的 abc 和 xyz。两者都有自己的 apex 环境。API 是在 abc 的 apex 环境上创建的。我需要在 xyz 模式下使用 plsql 调用它。)

现在,当它不受保护时,我可以成功调用API并发送/接收数据。

但是一旦我对其应用了权限,我就会收到以下错误:

如果我使用 Postman,我可以生成令牌,如下图所示:

这项活动对我来说是新的。所以,我想我在调用此 API 时做错了什么或错过了要添加的内容。

这是我的代码示例:

    apex_web_service.oauth_authenticate(
        p_token_url     => l_request_url || '/oauth/token',
        p_client_id     => l_client_id,
        p_client_secret => l_client_secret);

     begin
         apex_web_service.oauth_set_token(
             p_token =>  apex_web_service.oauth_get_last_token
         );
     end;

    l_request_headers_tab (1).name := 'Authorization';
    l_request_headers_tab (1).VALUE := 'Bearer ' || apex_web_service.oauth_get_last_token;

    l_request_headers_tab (2).name := 'Content-TYPE';
    l_request_headers_tab (2).VALUE := 'application/json';

    <calling apex_web_service.make_rest_request>

虽然我检查过

apex_web_service.oauth_get_last_token
也返回了令牌。所以不知道为什么我仍然收到 401 错误。

请帮我解决这个问题。

谢谢,

oracle plsql restful-authentication oracle-apex-19.1
1个回答
0
投票

看起来,

apex_web_service.oauth_set_token
正在重置令牌。因此
headers_tab
没有收到令牌。虽然我真的认为这是为了将令牌设置到 API。

如果能给出任何深入的解释,将不胜感激。

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