javascript - 告诉浏览器为同一域下的每个路径单独存储不同的密码

标签 javascript html path passwords password-storage

我正在编写一个浏览器应用程序,该应用程序在同一域下但在不同的路径下有多个登录表单。

domain.tld/foo/login domain.tld/bar/login domain.tld/bar/boo/login

目前,所有表单元素看起来都一样,没有属性,只有一个简单的密码输入,所有路径的名称都相同,还有一个提交按钮,我附加了一个提交监听器。调用监听器时会获取输入的密码,并且会阻止默认提交行为。然后,实际登录通过后台的 AJAX 请求进行。

HTML:

<form method="dialog">
  <input name="password" type="password">
  <button type="submit">Login</button>
</form>

Javascript:

form.addEventListener('submit', e => {
  login(); // Do the ajax login request
  e.preventDefault();
  return false;
});

所有经过测试的浏览器(FF、FFM、C、CM、O、OM)都允许保存密码,这很好。遗憾的是,密码是按子域而不是按路径保存的,导致同一域下以前访问过的路径的密码被覆盖。

告诉浏览器单独保存每个 URL 路径密码的最佳方法是什么?

最佳答案

这在大多数浏览器中是不可能的。例如,Mozilla 15 年前决定 they won't support this feature .

您可以通过 cookie 实现您自己的基于路径的“保持登录状态”系统。

或者您使用不同领域的 HTTP 身份验证。如 this post 中所述.

location /gabinete-rivera {
    auth_basic "Hijos de Rivera";
    auth_basic_user_file /home/www/public/gabinete-rivera-app/.htpasswd;
    index  index.php index.html;
    try_files $uri $uri/ /index.php?$query_string;
}

location /gabinete-gases {
    auth_basic "Gases Fluorados";
    auth_basic_user_file /home/www/public/gabinete-gases-app/.htpasswd;
    index  index.php index.html;
    try_files $uri $uri/ /index.php?$query_string;
}

关于javascript - 告诉浏览器为同一域下的每个路径单独存储不同的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56680946/

相关文章:

javascript - 无法使用 css 居中 javascript 创建的按钮

javascript - Canvas RGBA 到 RGB 转换

javascript - 如果输入了最低价格,如何使最高价格成为必需?

Typescript baseUrl 不影响 VS Code 中的模块解析

vb.net - 在 vb.net 中创建图形路径数组

javascript - 无法在 jQuery 中捕获 Ctrl+Alt+箭头键事件

javascript - 用于修复 css 的用户脚本

javascript - 使用 javascript 进行电子邮件验证,并在输入字段下方显示自定义消息

html - 图像超链接在 WordPress 文本小部件标题中不起作用

node.js - bash:create-react-app:找不到命令(很确定这是我的 $PATH)