У меня есть приложение с Angular во внешнем интерфейсе и Django во внутреннем интерфейсе на разных портах на одном хосте, и для аутентификации у меня есть этот фрагмент кода в моем userService.js:
authenticateUser: function() {
return $window.location.href = 'https://myhost:backend_port/oidc/auth/request/'
},
но когда я захожу в мое приложение, оно дает мне сообщение «не удается получить / oidc / auth / request /», поэтому я думаю, что внешний интерфейс пытается обработать его, когда он должен идти к бэкэнду.
Нужно ли добавить «местоположение» в конфигурацию Nginx для бэкэнда?Вот моя текущая конфигурация:
server {
listen 9004;
ssl on;
ssl_certificate /etc/ssl/certs/chained.cer;
ssl_certificate_key /etc/ssl/certs/key.key;
error_page 497 https://$host:9004$request_uri;
server_name myhost;
error_log /var/log/nginx/error-9004.log error;
client_max_body_size 2G;
location / {
proxy_pass https://myhost:3004;
}
location /static/ {
root /path/to/backend/code;
}
location /media/ {
root /path/to/media;
}
location /api {
include uwsgi_params;
uwsgi_pass unix:/run/uwsgi/myapp.sock;
}
ОБНОВЛЕНИЕ:
Я попытался добавить следующее в мою конфигурацию nginx:
location /oidc {
root /path/to/backend/code;
}
и теперь я получаю 404. Но это должно быть покрыто моим urls.py:
# openid requirement
url(r'^oidc/', include('oidc_rp.urls')),
вот oidc_rp.urls:
urlpatterns = [
url(r'^auth/request/$', views.OIDCAuthRequestView.as_view(), name='oidc_auth_request'),
url(r'^auth/cb/$', views.OIDCAuthCallbackView.as_view(), name='oidc_auth_callback'),
url(r'^end-session/$', views.OIDCEndSessionView.as_view(), name='oidc_end_session'),
]
ОБНОВЛЕНИЕ 2:
угловой фронт работает на pm2