我在使用Capybara / Selenium的Safari上进行浏览器身份验证时遇到问题。
我正在使用此代码进行身份验证:
visit "https://#{ENV['AUTH_USERNAME']}:#{ENV['AUTH_PASSWORD']}@my-staging-app.heroku.com"
这在Chrome和FF上很好用,但在Safari上不行。
有什么想法可以绕过这个吗?
答案 0 :(得分:0)
Okey,我已经找到解决方案。我不得不使用例如反向代理Nginx并发送适当的标头:)
这是我的操作方式:
在此示例中,我将使用凭据login: admin
和password: secret123
。
转到https://www.base64encode.org并对您的凭据admin:secret123
进行编码。
在此示例中为YWRtaW46c2VjcmV0MTIz
brew install nginx
sudo vim /usr/local/etc/nginx/nginx.conf
粘贴此代码:
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen 8080;
server_name localhost;
location / {
proxy_pass https://your_app.herokuapp.com;
proxy_set_header Authorization "Basic YWRtaW46c2VjcmV0MTIz";
}
}
}
更改proxy_pass
以匹配您的应用程序网址。
然后从proxy_set_header
到Authorization "Basic <your_encoded_creds>"
然后:brew services start nginx
从现在开始,当您点击http://localhost:8080
时,您将被重定向到页面并登录。