Tôi đang sử dụng Next-auth với keycloak và docker-compose và tôi gặp lỗi này:
[xác thực tiếp theo][lỗi][GET_AUTHORIZATION_URL_ERROR]
arcade-iori | https://next-auth.js.org/errors#get_authorization_url_error connect ECONNREFUSED 127.0.0.1:80 {
arcade-iori | thông báo: 'kết nối ECONNREFUSED 127.0.0.1:80',
arcade-iori | ngăn xếp: 'Lỗi: kết nối ECONNREFUSED 127.0.0.1:80\n' +
arcade-iori | ' tại TCPConnectWrap.afterConnect [as oncomplete] (node:net:1161:16)',
arcade-iori | tên: 'Lỗi'
arcade-iori | }
arcade-iori | [xác thực tiếp theo][lỗi][SIGNIN_OAUTH_ERROR]
arcade-iori | https://next-auth.js.org/errors#signin_oauth_error connect ECONNREFUSED 127.0.0.1:80 {
arcade-iori | lỗi: {
arcade-iori | thông báo: 'kết nối ECONNREFUSED 127.0.0.1:80',
arcade-iori | ngăn xếp: 'Lỗi: kết nối ECONNREFUSED 127.0.0.1:80\n' +
arcade-iori | ' tại TCPConnectWrap.afterConnect [as oncomplete] (node:net:1161:16)',
arcade-iori | tên: 'Lỗi'
arcade-iori | },
arcade-iori | các nhà cung cấp: {
arcade-iori | id: 'keycloak',
arcade-proxy | 172.30.0.1 - - [02/Feb/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, như Gecko) Chrome/97.0.4692.99 Safari/537.36" "-"
arcade-iori | tên: 'Chìa khoá',
arcade-iori | wellKnown: 'http://localhost/auth/realms/myrealm/.well-known/openid-configuration',
arcade-iori | gõ: 'oauth',
arcade-iori | ủy quyền: { params: [Object] },
arcade-iori | kiểm tra: [ 'pkce', 'state' ],
arcade-iori | idToken: đúng,
arcade-iori | hồ sơ: [Chức năng: hồ sơ],
arcade-iori | clientId: 'myclientnext',
arcade-iori | clientSecret: 'a2D7ZgIFMeijlfbKOi6vZ30dhNUZhrT3',
arcade-iori | nhà phát hành: 'http://localhost/auth/realms/myrealm',
arcade-iori | signinUrl: 'http://localhost/api/auth/signin/keycloak',
arcade-iori | callbackUrl: 'http://localhost/api/auth/callback/keycloak'
arcade-iori | },
arcade-iori | thông báo: 'kết nối ECONNREFUSED 127.0.0.1:80'
arcade-iori | }
Đây là cấu hình Next-auth:
nhập NextAuth từ "next-auth"
nhập KeycloakProvider từ "next-auth/providers/keycloak";
xuất NextAuth mặc định ({
bí mật: process.env.SECRET,
trang web: process.env.NEXTAUTH_URL,
nhà cung cấp: [
KeycloakProvider({
clientId: 'myclientnext',
clientSecret: 'a2D7ZgIFMeijlfbKOi6vZ30dhNUZhrT3',
nhà phát hành: 'http://localhost/auth/realms/myrealm',
})
],
})
Đây là docker-compose.yml của tôi:
phiên bản: '3.7'
khối lượng:
keycloak_db_data:
tài xế: địa phương
mạng:
mạng điện tử:
tài xế: cầu
dịch vụ:
keycloak-db:
hình ảnh: postgres:11.2
container_name: arcade-keycloak-db
khối lượng:
- keycloak_db_data:/var/lib/postgresql/data
môi trường:
POSTGRES_DB: arcadecock
POSTGRES_USER: trò chơi điện tử
POSTGRES_PASSWORD: trò chơi điện tử
mạng:
- mạng điện tử
áo choàng khóa:
hình ảnh: quay.io/keycloak/keycloak:16.1.0
container_name: arcade-keycloak
môi trường:
DB_VENDOR: POSTGRES
DB_ADDR: arcade-keycloak-db
DB_DATABASE: arcadecock
DB_USER: trò chơi điện tử
DB_SCHEMA: công khai
DB_PASSWORD: trò chơi điện tử
KEYCLOAK_USER: quản trị viên
KEYCLOAK_PASSWORD: quản trị viên
PROXY_ADDRESS_FORWARDING: đúng
# Bỏ ghi chú dòng bên dưới nếu bạn muốn chỉ định các tham số JDBC. Tham số bên dưới chỉ là một ví dụ và không nên sử dụng tham số này trong quá trình sản xuất mà không có kiến thức. Bạn nên đọc tài liệu trình điều khiển PostgreSQL JDBC để sử dụng nó.
#JDBC_PARAMS: "ssl=true"
cổng:
- 8080:8080
phụ thuộc:
- keycloak-db
mạng:
- mạng điện tử
iori:
stdin_open: true # docker run -i
tty: true # docker run -t
xây dựng:
ngữ cảnh: ../iori/
dockerfile: dockerfile
hình ảnh: iori
container_name: arcade-iori
cổng:
- 3000:3000
khối lượng:
- '../iori/:/ứng dụng'
- '/ứng dụng/nút_mô-đun'
mạng:
- mạng điện tử
Ủy quyền:
hình ảnh: nginx
container_name: arcade-proxy
khởi động lại: trừ khi dừng
cổng:
- 80:80
khối lượng:
- ./default-proxy.conf:/etc/nginx/conf.d/default.conf:ro
mạng:
- mạng điện tử
Đây là default-proxy.conf:
người phục vụ {
nghe 80;
nghe [::]:80;
máy chủ_tên máy chủ cục bộ;
vị trí /keycloak/ {
proxy_pass http://arcade-keycloak:8080/;
proxy_set_header Máy chủ lưu trữ $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 $scheme;
}
vị trí /auth/ {
proxy_pass http://arcade-keycloak:8080/auth/;
proxy_set_header Máy chủ lưu trữ $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 $scheme;
}
địa điểm / {
proxy_pass http://arcade-iori:3000;
proxy_http_version 1.1;
proxy_set_header Nâng cấp $http_upgrade;
'nâng cấp' kết nối proxy_set_header;
proxy_set_header Máy chủ lưu trữ $host;
proxy_cache_bypass $http_upgrade;
}
error_page 500 502 503 504 /50x.html;
vị trí = /50x.html {
gốc /usr/share/nginx/html;
}
}