Joc*_*nde 11 javascript ajax google-chrome http-authentication google-chrome-extension
我目前正在开发chrome扩展,我需要访问一些受http-auth保护的资源(webdav).HTTP身份验证使用(在最好的情况下)摘要身份验证.
我可以使用https:// login:password@domain.tld/path/to/ressource表单直接在ajax请求中执行auth .
问题是:如果登录/密码错误,我不能获得401状态(未经授权),Chrome会弹出常规身份验证对话框.这是我不想要的,因为它让用户感到困惑,我无法从这里保存凭据.
编辑:我遇到的另一个用例是:我想检查一个资源是否受密码保护,而不试图提供凭据来实际访问它.
关于如何在不弹出Chrome的auth框的情况下抓住401的任何想法?
Google Chrome 团队已在 Google Chrome 22 中实现了 onAuthRequired 事件,因此现在可以检测何时需要 HTTP 基本身份验证。
事实上,我编写了一个扩展,它使用 onAuthRequired 事件自动发送 HTTP 基本身份验证凭据。
它可以在 Google Chrome 官方网上商店免费获取: https://chrome.google.com/webstore/detail/basic-authentication-auto/dgpgkkfheijbcgjklcbnokoleebmeokn
onAuthRequired 事件的使用示例:
sendCredentials = function(status)
{
console.log(status);
return {username: "foo", password: "bar"};
}
chrome.webRequest.onAuthRequired.addListener(sendCredentials, {urls: ["<all_urls>"]}, ["blocking"]);
Run Code Online (Sandbox Code Playgroud)
您需要向清单文件添加正确的权限才能使用 onAuthRequired。
"permissions": [ "http://*/*", "https://*/*", "webRequest", "webRequestBlocking", "tabs" ],
Run Code Online (Sandbox Code Playgroud)
下载扩展并检查源代码以获得更好的方法。
即使请求是从另一个分机发起的,它也应该起作用。
| 归档时间: |
|
| 查看次数: |
6148 次 |
| 最近记录: |