如何在 apache vhost 中密码保护 Laravel 站点?

问题描述

我正在尝试使用 Apache vhost 文件密码保护我的 Laravel 应用程序。它会询问我的用户名和密码,但它会在每条路线和每次我重新加载页面时不断询问。

有人可以解释一下我需要如何更改配置文件才能让网站只询问一次密码和用户名吗?

这是我的 vhost 文件的目录部分:

    ServerAdmin admin@mysite.com
    ServerName staging.app.mysite.ee
    ServerAlias www.staging.app.mysite.ee
    DocumentRoot /var/www/mysite/app/staging/public

    <Directory "/var/www/mysite/app/staging">
            Options +FollowSymLinks +MultiViews +Indexes
            AllowOverride All
            Order allow,deny
            Allow from all

            #AuthType Basic
            #AuthName "Restricted Area"
            #AuthUserFile /var/www/.htpasswd
            #Require valid-user
    </Directory>

解决方法

您可以将以下代码放入项目文档根目录中的任一 .htaccess 文件中。或者你可以在apache配置文件中添加以下代码。

AuthName "Dialog prompt"
AuthType Basic
AuthUserFile FULL_PATH_OF_FILE_HTPASSWD
Require valid-user

.htpasswd 文件应包含用户名和密码。

Username:HASHED_PASSWORD

这只会提示密码一次,即。将在会话中设置。