我有一个网站,我使用Apache进行身份验证(使用基本身份验证进行测试)。它适用于所有浏览器。现在,我正在尝试将网站使用的API添加到身份验证领域(使用相同的AuthName),并注意以下行为:
在Safari上,它会进行两次身份验证,一次访问网站,然后再进行API调用。 (我希望第一次只需要进行身份验证。)
在Chrome和Firefox上,它会在我第一次访问网站时进行身份验证,但在网站进行API调用时会返回401错误。
这些都在同一个域/端口上,所以我不认为这是一个CORS问题(特别是因为当我删除API的身份验证要求时,这是有效的,因此不会被锁定,因此,不可取) 。我确实拥有相同的AuthName,FWIW,但这似乎没有效果。
httpd.conf中的我的API配置是:
WSGIDaemonProcess rest_api user=gms threads=5
WSGIScriptAlias /api /var/www/extjs/rest_api/rest_api.wsgi
<Location /api>
Options +FollowSymLinks +Multiviews +Indexes
AllowOverride None
Order allow,deny
Deny from all
AuthType basic
Satisfy Any
AuthName "PrivateRepository"
AuthUserFile /var/www/extjs/.htpasswd
Require valid-user
</Location>
虽然该网站是:
<VirtualHost *:80>
ServerName cardiocatalogqt
Alias /cardiocatalogqt /var/www/extjs/cardiocatalogqt
<Location /cardiocatalogqt>
Options +FollowSymLinks +Multiviews +Indexes
AllowOverride None
Order allow,deny
Deny from all
AuthType basic
Satisfy Any
AuthName "PrivateRepository"
AuthUserFile /var/www/extjs/.htpasswd
Require valid-user
</Location>
</VirtualHost>
答案 0 :(得分:1)
如果您希望浏览器先发制人地发送基本身份验证凭据,您需要重新排列网址,以便它们具有共同的前缀。