代码之家  ›  专栏  ›  技术社区  ›  Matthew Jaeger

使用Safari Capybara Selenium进行基本浏览器身份验证

  •  0
  • Matthew Jaeger  · 技术社区  · 7 年前

    我在Safari上使用Capybara/Selenium进行浏览器身份验证时遇到问题。

    我正在使用此代码进行身份验证:

    visit "https://#{ENV['AUTH_USERNAME']}:#{ENV['AUTH_PASSWORD']}@my-staging-app.heroku.com"
    

    这在Chrome和FF上运行良好,但在Safari上不起作用。

    有没有办法绕过这个?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Matthew Jaeger    7 年前

    好的,我已经找到了解决办法。我必须使用反向代理,例如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 您将被重定向到您的页面并登录。