如何区分使用基本身份验证的用户

How to differentiate between users using Basic Authentication

问题 我有一个使用基本身份验证并具有多个不同登录名的网站。我想要一种方法,使用 javascript,当前登录用户的用户名。

我检查了 cookie,但那里没有存储基本的身份验证凭据。

堆栈 我正在使用配置有 .htaccess.htpasswd 文件的 Apache,因此无法使用后端告诉前端哪个用户已登录。

目标 我要解决的问题非常简单,我希望我的网站显示当前登录用户的用户名。

并非没有一点点 PHP。 Javascript 在客户端执行,正如您已经发现的那样,用户名不是从服务器发送的,因此您需要在服务器端发送该用户 ID。

方法如下:

由于您的页面是在服务器上生成的,它使用一小段 PHP 将用户名添加到您的 JavaScript 中,这就是 JavaScript 在客户端上的方式用它做它需要的。

请注意,在不同用户再次请求该页面之前,用户 ID 不会更改,因此它不需要在客户端中间会话中是动态的。

PHP 在用户登录时在服务器端生成页面,并将其包含在页面的 JavaScript 代码中。在 JavaScript 中你想要那个名字的地方,你可以使用 <?php echo $_SERVER['REMOTE_USER']; ?> 把它放在那里。在具有 html 和 JavaScript 代码的服务器上,文件扩展名需要是 .php。