【问题标题】:Tell browser to store different passwords for each path under the same domain individually告诉浏览器为同一域下的每个路径分别存储不同的密码
【发布时间】:2019-06-20 07:21:22
【问题描述】:

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

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 路径的密码的最佳方法是什么?

【问题讨论】:

    标签: javascript html path passwords password-storage


    【解决方案1】:

    这在大多数浏览器中是不可能的。例如 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-22
      • 2012-01-11
      • 2021-10-13
      • 2019-08-03
      • 2011-04-20
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      相关资源
      最近更新 更多