我已经Basic Auth
为浏览器身份验证设置了一个 Opencart 项目,以仅允许访问相关用户。现在,I need to use REST API for a mobile app
. 当我从 API 调用端点以从 Opnecart 项目获取一些详细信息时,它需要从 API 生成 access_token,并且通过在每个请求中使用该 access_token,我可以从 API 获取详细信息。问题是我为项目设置的基本身份验证,因此我无法访问 API,因为我只能使用 1 种方法访问 API,即 GET 方法从 opencart 获取详细信息,我不能使用 2 种方法,即Auth Header and GET methods
. 所以,what I am trying to do is to disable Basic Auth if the Request_URI includes api calls.
到目前为止,我对项目的 vhost 所做的尝试如下,但这一切都没有奏效。
从以下问题的已接受答案中得到了这个想法,但它并没有为我锻炼。 https://stackoverflow.com/questions/8978080/htaccess-exclude-one-url-from-basic-auth?answertab=votes#tab-top
<Directory /var/www/html/projectexample>
AllowOverride All
# Auth stuff
AuthName "Authentication Required"
AuthType Basic
AuthUserFile /etc/apache2/.htpasswd
Order allow,deny
Deny from all
Satisfy any
<RequireAny>
<RequireAll>
Require expr %{REQUEST_URI} =~ m#^/api/rest/.*#
</RequireAll>
Require valid-user
</RequireAny>
</Directory>
我也尝试过使用 SetEnvIf 环境变量,如下所示,但它也没有锻炼。
<Directory /var/www/html/projectexample>
AllowOverride All
# Auth stuff
AuthName "Authentication Required"
AuthType Basic
AuthUserFile /etc/apache2/.htpasswd
SetEnvIf Request_URI "^/api/*" allow=1
#SetEnvIf Request_URI "^/(api/*)" allow=1
Order allow,deny
Require valid-user
Allow from env=allow
Deny from env!=allow
Satisfy any
</Directory>
请问有什么解决办法吗?