我尝试在HTTP基本身份验证用户/密码对话框后面运行Koel(或Kutr,一个分支):在启用基本身份验证的nginx反向代理https://koel后面https://koel:8001 .
Koel是一个Laravel应用程序,它使用JWT标记和 Authorization
Header字段,如下所示:
Authorization: Bearer eyJ0eX…
这意味着每个请求都会覆盖基本的auth标头(使用相同的字段),并且会一次又一次地弹出登录对话框 .
当我将文件.env中的APP_URL设置为https://user:pass@koel时,确实正确获取了所有指向静态文件的链接 . 不幸的是,像https://koel/api/data这样的API调用忽略了这一点 .
我可以使用某种中间件将用户和密码注入API调用吗?
1 回答
JWT的原则是避免使用基本身份验证,这种身份验证完全没有身份验证(您的凭据通过基本身份验证进行了明确传输) .
所以,我会说使用
Authorization
的JWT是一件好事,因为它可以防止你的凭证在配置错误的情况下泄漏 .JWT的原则是,在有效凭证时,生成存储在浏览器中的令牌(有点像cookie) . 然后,使用此令牌,无需提供任何身份验证(因此凭据仅在身份验证时出现一次,在完整会话期间不出现,如基本或摘要身份验证) .
使用Koel,您无法阻止此操作,因为无法更改登录页面以使用基本身份验证 .
然而,对于Kutr,我已经完成了一些挂钩机制,因此您可以插入自己的登录页面(这可以像验证基本身份验证一样简单) .
它可用here
在您的情况下,替换文件的顶部:
至
确保用户的登录名也存在于Kutr的应用程序中