Обрабатывать Angular Auth0 callback правильно с Nginx - PullRequest
0 голосов
/ 12 апреля 2020

Я впервые пользуюсь Nginx и новичком в конфигурации сервера. У меня есть приложение, работающее на моей локальной машине с Flask backend и Angular frontend, где находится Auth0, но теперь я пытаюсь запустить его на сервере Ubuntu. Я получил Angular фронт, который будет отображаться на моем сервере с использованием Nginx, но после попытки входа в систему / обратный вызов завершается неудачно с 404. Я посмотрел много похожих вопросов и уроков, но ни один из них не очень понятен или просто упомяните решение, но не показывайте примеры или код, подобный следующей ссылке, или просто скажите использовать HashLocationStrategy, чего я не понимаю.

Как настроить Nginx с Auth0?

У меня есть CallbackComponent и / callback-маршрут к нему в app-routing.module.ts. У меня есть разрешенные маршруты обратного вызова в конфигурации приложения Auth0, определенные как:

http://my-ip-address/callback, http://localhost:4200/callback

, и у меня есть конфигурация Auth0 в моем файле app.module.ts, например:

constructor() {
Auth0.configure({
  domain: 'domain-name',
  audience: 'audience-name',
  clientID: 'client-id',
  redirectUri: 'http://localhost:4200/callback',
  scope: 'scope'
  });
}

Я также попытался изменить redirectUri на http://my-ip-address/callback, но ничего не изменилось. Мой файл config.d выглядит так:

upstream gateway {
    server 127.0.0.1:5000;
}
server {
        listen       80;
        root   /var/www/html;

        location / {
                index  index.html index.htm;
                try_files $uri $uri/ /index.html =404;
        }
    location /api {
        proxy_set_header   Host             $http_host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   X-NginX-Proxy    true;
        proxy_pass http://gateway;          
    }
}

где шлюз - это мой бэкэнд. Большая часть этого скопирована из учебников и может даже не быть правильной. Я понимаю, что Nginx понятия не имеет, что происходит внутри Angular маршрутизации, но я не знаю, как подключить все это для его работы.

Как мне обработать / callback-маршрут для Auth0 и Angular в Nginx?

1 Ответ

0 голосов
/ 13 апреля 2020

Оказывается, это почти сработало. Мой файл conf.d, именно эта часть:

location / { try_files $uri $uri/ /index.html =404; }

была правильной. Однако в каталоге / sites-enabled файл конфигурации по умолчанию содержал ошибку, подобную этой index.html=404, поэтому он искал страницу с именем 'index.html = 404' в цикле, что также давало 505 ошибок. Кроме того, redirectUri должен иметь значение «http://my-ip-address/callback» как в конфигурации панели мониторинга Auth0, так и везде, где вызывается функция «Auth0.configure».

...