【问题标题】:Passing credentials in url for Apache (API)在 Apache (API) 的 url 中传递凭据
【发布时间】:2020-11-08 15:33:09
【问题描述】:

问题

我想在 url 中传递凭据以访问我的 Apache 服务器。

我的 .htaccess 设置为基本身份验证。

AuthType Basic

并显示一个身份验证窗口,我可以在其中输入凭据。一切都很好,但是......

问题在于 url 在脚本中并且用于访问 API。

<script>
....
ocpu.seturl("//xx.xx.xx.xx/ocpu/library/base/R")
....
</script>

我尝试了什么

我尝试使用以下方式传递凭据:

ocpu.seturl("//user:password@xx.xx.xx.xx/ocpu/library/base/R")

或者类似的东西

ocpu.seturl("////xx.xx.xx.xx?username=user&pass=password/ocpu/library/base/R")

但它不起作用。此外(如预期的那样),如果我在网络浏览器中输入凭据,例如

http://xx.xx.xx.xx?username=user&pass=password

它不起作用(意味着出现 Auth 窗口)。

不可能吗?还是我必须对凭据进行编码?

谢谢

【问题讨论】:

    标签: apache authentication opencpu


    【解决方案1】:

    也许你用错了方法。您应该将网页与 ocpu 页面托管在同一台服务器上,然后用户在加载网页时输入的凭据将在调用 API 时自动使用。

    您是否尝试在应用中包含 Web 前端,就像在示例应用中一样?

    【讨论】:

    • 我的网站由 OVH (ovh.co.uk) 和我家的服务器托管。我没有使用任何应用程序,而只是使用 jsfiddle.net/WVWCR/165 中的 javascript
    • 或者这不是正确的做法?我的意思是你不应该在家里使用你自己的服务器?
    【解决方案2】:

    您是否尝试在身份验证标头中传递基本身份验证凭据?在纯 JavaScript 中,这可以通过以下方式完成:

    var invocation = new XMLHttpRequest();
    invocation.open("GET", url, true, username, password);
    invocation.withCredentials = true;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-09
      • 2013-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多