From e34dc993306aefdb13e242941210ff2bf02a51e7 Mon Sep 17 00:00:00 2001 From: JIANG Date: Thu, 25 Sep 2025 09:24:57 +0800 Subject: [PATCH] =?UTF-8?q?docker=E3=80=81keycloak=20=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keycloak/.vscode/tasks.json | 26 ++++++++++++ keycloak/docker-compose.yml | 48 +++++++++++++++++++++++ src/app/api/auth/[...nextauth]/options.ts | 8 ++-- 3 files changed, 78 insertions(+), 4 deletions(-) create mode 100644 keycloak/.vscode/tasks.json create mode 100644 keycloak/docker-compose.yml diff --git a/keycloak/.vscode/tasks.json b/keycloak/.vscode/tasks.json new file mode 100644 index 0000000..0c87756 --- /dev/null +++ b/keycloak/.vscode/tasks.json @@ -0,0 +1,26 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Docker Compose Up", + "type": "shell", + "command": "docker compose --project-name keycloak -f docker-compose.yml up -d --build", + "group": "build", + "problemMatcher": [] + }, + { + "label": "Docker Compose Down", + "type": "shell", + "command": "docker compose --project-name keycloak -f docker-compose.yml down", + "group": "build", + "problemMatcher": [] + }, + { + "label": "Docker Compose Restart", + "type": "shell", + "command": "docker compose --project-name keycloak -f docker-compose.yml restart", + "group": "build", + "problemMatcher": [] + } + ] +} diff --git a/keycloak/docker-compose.yml b/keycloak/docker-compose.yml new file mode 100644 index 0000000..25d3e54 --- /dev/null +++ b/keycloak/docker-compose.yml @@ -0,0 +1,48 @@ +version: '1.0' +services: + postgres: + image: postgis/postgis:14-3.5 + container_name: keycloakDB + environment: + POSTGRES_DB: keycloak + POSTGRES_USER: keycloak + POSTGRES_PASSWORD: keycloak + ports: + - "5434:5432" + volumes: + - C:\Users\admin\Documents\docker\keycloakDB\data:/var/lib/postgresql/data + networks: + - keycloak + + keycloak: + image: keycloak/keycloak:latest + container_name: keycloak + environment: + environment: + KC_HOSTNAME: localhost + KC_HOSTNAME_STRICT_BACKCHANNEL: "true" + KEYCLOAK_ADMIN: admin + KEYCLOAK_ADMIN_PASSWORD: admin + KC_HEALTH_ENABLED: "true" + KC_LOG_LEVEL: info + KC_DB: postgres + KC_DB_URL: jdbc:postgresql://postgres:5432/keycloak + KC_DB_USERNAME: keycloak + KC_DB_PASSWORD: keycloak + volumes: + - C:\Users\admin\Documents\docker\keycloak\themes:/opt/keycloak/themes + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:8080/health/ready" ] + interval: 15s + timeout: 2s + retries: 15 + command: [ "start-dev" ] + ports: + - "8088:8080" + depends_on: + - postgres + networks: + - keycloak +networks: + keycloak: + driver: bridge diff --git a/src/app/api/auth/[...nextauth]/options.ts b/src/app/api/auth/[...nextauth]/options.ts index ea51ac7..1e2ff7c 100644 --- a/src/app/api/auth/[...nextauth]/options.ts +++ b/src/app/api/auth/[...nextauth]/options.ts @@ -5,9 +5,9 @@ const authOptions = { providers: [ // !!! Should be stored in .env file. KeycloakProvider({ - clientId: `refine-demo`, - clientSecret: `refine`, - issuer: `https://lemur-0.cloud-iam.com/auth/realms/refine`, + clientId: `tjwater`, + clientSecret: `Darcm3gw0ZEJhIxt4DQUvacXpVlE7MBt`, + issuer: `http://localhost:8088/realms/tjwater`, profile(profile) { return { id: profile.sub, @@ -18,7 +18,7 @@ const authOptions = { }, }), ], - secret: `UItTuD1HcGXIj8ZfHUswhYdNd40Lc325R8VlxQPUoR0=`, + secret: `Darcm3gw0ZEJhIxt4DQUvacXpVlE7MBt`, }; export default authOptions;