Базовая аутентификация браузера с Safari Capybara Selenium - PullRequest
0 голосов
/ 01 февраля 2019

У меня проблема с аутентификацией браузера в Safari с использованием Capybara / Selenium.

Я использую этот код для аутентификации:

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

Это прекрасно работает на Chrome и FF, но не на Safari.

Есть идеи, как это обойти?

1 Ответ

0 голосов
/ 08 февраля 2019

Окей, я нашел решение для этого.Мне пришлось использовать обратный прокси-сервер с использованием, например, 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 в соответствии с URL вашего приложения.

И proxy_set_header на Authorization "Basic <your_encoded_creds>"

Затем: brew services start nginx

С этого момента, когда вы будетенажмите http://localhost:8080. Вы будете перенаправлены на свою страницу и авторизованы.

...