0

我有一个 Wordpress 网站,我正在使用使用基本 HTTP 身份验证的 3rd 方搜索提供者的 API。

当用户在我的网站上搜索时,JS 将搜索请求提交给 3rd 方搜索提供程序,如果经过身份验证,它将返回结果,如果没有,则要求用户身份验证。

现在,客户不希望进行身份验证过程,但所有访问我的页面的用户都应该自动为 3rd 方搜索提供商(LDC 搜索)进行身份验证。

我设法通过http://username:password@example.com为大多数浏览器实现了这一点,这不是一个可接受的解决方案,因为 any1 可以看到密码,它在 IE 中不起作用。

首先:我坚信,如果不更改身份验证方法或通过 js 或通过链接自动填写密码(这需要将通行证发送给所有客户端),这是不可能的,如果我错了,请纠正我?

其次:是否有任何(半)安全的方式来跳过身份验证或以安全的方式自动填充密码而不更改 3rd 方插件?

第三:如果这是不可能的,那么创建身份验证的最佳方法是什么?我可以告诉搜索提供者什么,以便他可以将他的 API 更改为具有引用过滤器或类似的东西?最好的问候,并感谢 4 提前帮助页面:http ://www.gotomidtown.co.uk/ldc-search/

4

1 回答 1

1

使用 HTTP 基本身份验证,发出请求的人必须提交用户名和密码才能进行身份验证。这意味着发出请求的人需要知道用户名和密码。如果不向客户端公开用户凭据,则无法让客户端向 HTTP Basic 安全站点发出请求。即使您可以将其从 URL 中隐藏起来,从而使最终用户无法看到它,但对于任何想在正确位置(网络请求检查选项卡等)查看的人来说,它仍然是可见的。

您想要的是一种第三方身份验证形式,您的服务器通过 API 提供者进行身份验证并接收限时令牌。然后,您将用户发送到带有该令牌的 URL,API 提供者将接受该令牌并允许用户进行一次身份验证,而无需提供常量密钥。本质上,您以这种方式使用一次性密码。API 提供者必须明确支持和实现这种机制。

于 2012-09-03T15:35:53.480 回答