Javascript Can';无法在客户端验证密码

Javascript Can';无法在客户端验证密码,javascript,html,pdf,web,pdf.js,Javascript,Html,Pdf,Web,Pdf.js,我试图在我的网页上使用pdf.js,在上传到服务器之前,我需要验证pdf用户输入的密码是否正确 但是我不能让它工作 我使用了CDN托管的pdf.min.js <script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.min.js" integrity="sha512-Z8CqofpIcnJN80feS2uccz+pXWgZzeKxDsDNMD/dJ6997/LSRY+W4NmE

我试图在我的网页上使用
pdf.js
,在上传到服务器之前,我需要验证pdf用户输入的密码是否正确

但是我不能让它工作

我使用了CDN托管的
pdf.min.js

<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.min.js" integrity="sha512-Z8CqofpIcnJN80feS2uccz+pXWgZzeKxDsDNMD/dJ6997/LSRY+W4NmEt9acwR+Gt9OHN0kkI1CTianCwoqcjQ==" crossorigin="anonymous"></script>
在控制台日志中,它记录了
不推荐的API用法:未指定“GlobalWorkerOptions.workerSrc”。

我试图通过
pdfjsLib.disableWorker=true禁用它但它不起作用


我只需验证密码,无需其他任何操作,无需渲染。

以下是一个工作代码示例:


const pdfName=“empty protected.pdf”;
异步函数加载()
{
const loadingTask=pdfjsLib.getDocument({url:pdfName,密码:“qwerty”});
然后(()=>console.log(1,“OK”),(ex)=>console.log(1,ex));
const loadingTask2=pdfjsLib.getDocument({url:pdfName,密码:});
然后(()=>console.log(2,“OK”),(ex)=>console.log(2,ex));
}

以下是一个工作代码示例:


const pdfName=“empty protected.pdf”;
异步函数加载()
{
const loadingTask=pdfjsLib.getDocument({url:pdfName,密码:“qwerty”});
然后(()=>console.log(1,“OK”),(ex)=>console.log(1,ex));
const loadingTask2=pdfjsLib.getDocument({url:pdfName,密码:});
然后(()=>console.log(2,“OK”),(ex)=>console.log(2,ex));
}

此操作的目的是什么?如果您在客户端验证密码,则不会实现安全性,因为您的后端端点将打开以上载未验证的文件,并且可以绕过密码检查。过滤不需要的pdf文件的正确方法是在服务器上-上载任何文件,测试密码,删除文件,如果密码不匹配,则返回错误。pdf文件的客户端密码检查是为了更快的用户界面体验。因此,您在后端重复检查密码?不是真的。pdf是受密码保护的,为了处理不太常见的错误,例如错误的密码,我在客户端检查它们。嗯,我在pdf.js上找不到任何好的文档(考虑到谁是供应商,这很令人惊讶)。对不起,我不能再帮你了。不过,我怀疑“折旧”警告与您无法验证密码这一事实无关。这是为了什么?如果您在客户端验证密码,则不会实现安全性,因为您的后端端点将打开以上载未验证的文件,并且可以绕过密码检查。过滤不需要的pdf文件的正确方法是在服务器上-上载任何文件,测试密码,删除文件,如果密码不匹配,则返回错误。pdf文件的客户端密码检查是为了更快的用户界面体验。因此,您在后端重复检查密码?不是真的。pdf是受密码保护的,为了处理不太常见的错误,例如错误的密码,我在客户端检查它们。嗯,我在pdf.js上找不到任何好的文档(考虑到谁是供应商,这很令人惊讶)。对不起,我不能再帮你了。不过,我怀疑“折旧”警告与您无法验证密码这一事实无关。正如我在评论中提到的,pdf.worker.min.js是我需要的。因为这是库的核心层。看到这里,谢谢daniel抽出时间陪我,伙计。正如我在评论中提到的,pdf.worker.min.js是我需要的。因为这是库的核心层。看这里谢谢你,丹尼尔,谢谢你的时间,伙计。
function checkPass() {
pdfjsLib.getDocument({
        url: 'pdf.pdf',
        password: '01010101'
    }).promise.then(function (pdf) {
        input.classList.add("rightpass");
    }).catch(function (error) {
        input.classList.add("wrongpass");
        console.log(error);
    });
}