Я использую Next-auth с keycloak и docker-compose и получаю эту ошибку:
[следующая авторизация] [ошибка] [GET_AUTHORIZATION_URL_ERROR]
аркада-иори | https://next-auth.js.org/errors#get_authorization_url_error connect ECONNREFUSED 127.0.0.1:80 {
аркада-иори | сообщение: 'подключить ECONNREFUSED 127.0.0.1:80',
аркада-иори | стек: «Ошибка: подключение ECONNREFUSED 127.0.0.1:80\n» +
аркада-иори | ' at TCPConnectWrap.afterConnect [как oncomplete] (узел: сеть: 1161:16)',
аркада-иори | имя: 'Ошибка'
аркада-иори | }
аркада-иори | [следующая аутентификация] [ошибка] [SIGNIN_OAUTH_ERROR]
аркада-иори | https://next-auth.js.org/errors#signin_oauth_error подключить ECONNREFUSED 127.0.0.1:80 {
аркада-иори | ошибка: {
аркада-иори | сообщение: 'подключить ECONNREFUSED 127.0.0.1:80',
аркада-иори | стек: «Ошибка: подключение ECONNREFUSED 127.0.0.1:80\n» +
аркада-иори | ' at TCPConnectWrap.afterConnect [как oncomplete] (узел: сеть: 1161:16)',
аркада-иори | имя: 'Ошибка'
аркада-иори | },
аркада-иори | провайдер: {
аркада-иори | идентификатор: 'плащ для ключей',
аркадный прокси | 172.30.0.1 - - [02/февраль/2022:04:52:58 +0000] "POST /api/auth/signin/keycloak HTTP/1.1" 302 5 "http://localhost/api/auth/signin?callbackUrl =http%3A%2F%2Flocalhost%2F" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/97.0.4692.99 Safari/537.36" "-"
аркада-иори | название: 'Плащ',
аркада-иори | wellKnown: 'http://localhost/auth/realms/myrealm/.well-known/openid-configuration',
аркада-иори | тип: 'oauth',
аркада-иори | авторизация: {параметры: [Объект]},
аркада-иори | проверяет: ['pkce', 'состояние'],
аркада-иори | idToken: правда,
аркада-иори | профиль: [Функция: профиль],
аркада-иори | clientId: 'мой клиентследующий',
аркада-иори | clientSecret: 'a2D7ZgIFMeijlfbKOi6vZ30dhNUZhrT3',
аркада-иори | эмитент: 'http://localhost/auth/realms/myrealm',
аркада-иори | signinUrl: 'http://localhost/api/auth/signin/keycloak',
аркада-иори | callbackUrl: 'http://localhost/api/auth/callback/keycloak'
аркада-иори | },
аркада-иори | сообщение: 'подключить ECONNREFUSED 127.0.0.1:80'
аркада-иори | }
Это конфигурация Next-auth:
импортировать NextAuth из «next-auth»
импортировать KeycloakProvider из "next-auth/providers/keycloak";
экспортировать по умолчанию NextAuth({
секрет: процесс.env.СЕКРЕТ,
сайт: process.env.NEXTAUTH_URL,
провайдеры: [
KeycloakProvider({
clientId: 'мой клиентследующий',
clientSecret: 'a2D7ZgIFMeijlfbKOi6vZ30dhNUZhrT3',
эмитент: 'http://localhost/auth/realms/myrealm',
})
],
})
Это мой docker-compose.yml:
версия: '3.7'
тома:
keycloak_db_data:
водитель: местный
сети:
аркадный:
водитель: мост
Сервисы:
keycloak-БД:
изображение: постгрес: 11.2
container_name: аркада-keycloak-db
тома:
- keycloak_db_data:/var/lib/postgresql/данные
среда:
POSTGRES_DB: аркада
POSTGRES_USER: аркада
POSTGRES_PASSWORD: аркада
сети:
- аркаденет
плащ:
изображение: quay.io/keycloak/keycloak:16.1.0
container_name: аркада-keycloak
среда:
DB_VENDOR: ПОСТГРЕС
DB_ADDR: аркада-keycloak-db
DB_DATABASE: аркада
DB_USER: аркада
DB_SCHEMA: общедоступная
DB_PASSWORD: аркада
KEYCLOAK_USER: администратор
KEYCLOAK_PASSWORD: администратор
PROXY_ADDRESS_FORWARDING: правда
# Раскомментируйте строку ниже, если вы хотите указать параметры JDBC. Приведенный ниже параметр является лишь примером, и его нельзя использовать в продакшене без ведома. Настоятельно рекомендуется прочитать документацию по драйверу PostgreSQL JDBC, чтобы использовать его.
#JDBC_PARAMS: "ssl=true"
порты:
- 8080:8080
зависит от:
- keycloak-db
сети:
- аркаденет
иори:
stdin_open: true # запуск докера -i
tty: true # docker run -t
строить:
контекст: ../иори/
докерфайл: Докерфайл
изображение: иори
container_name: аркада-иори
порты:
- 3000:3000
тома:
- '../иори/:/приложение'
- '/приложение/node_modules'
сети:
- аркаденет
прокси:
изображение: nginx
container_name: аркадный прокси
перезапуск: если не остановлен
порты:
- 80:80
тома:
- ./default-proxy.conf:/etc/nginx/conf.d/default.conf:ro
сети:
- аркаденет
Это default-proxy.conf:
сервер {
слушать 80;
слушать [::]:80;
имя_сервера локальный;
местоположение /keycloak/ {
proxy_pass http://arcade-keycloak:8080/;
proxy_set_header Хост $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $ схема;
}
местоположение / авторизация / {
proxy_pass http://arcade-keycloak:8080/auth/;
proxy_set_header Хост $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $ схема;
}
место расположения / {
proxy_pass http://arcade-iori:3000;
прокси_http_версия 1.1;
proxy_set_header Обновить $http_upgrade;
proxy_set_header Соединение «обновление»;
proxy_set_header Хост $host;
proxy_cache_bypass $http_upgrade;
}
error_page 500 502 503 504 /50x.html;
местоположение = /50x.html {
корень /usr/share/nginx/html;
}
}