我正在基于 keycloak 构建应用程序,但我正在努力解决一个问题:如何使用 Angular 和 Keycloak API 为用户提供编辑功能。此外,用户不是管理员或类似用户,这只是普通用户。我已经尝试过本指南https://www.marcus-povey.co.uk/2020/10/12/using-the-keycloak-accounts-management-api/,但没有帮助。也许我做错了什么?我正在使用 keycloak v.18
这是我的 docker compose 文件:
keycloak:
env_file: .env.docker
image: ${KEYCLOAK_IMAGE}
build:
context: ./keycloak
args:
- KEYCLOAK_IMAGE
hostname: keycloack
environment:
KEYCLOAK_IMAGE: ${KEYCLOAK_IMAGE}
KEYCLOAK_USER: user
KEYCLOAK_PASSWORD: user
KEYCLOAK_ADMIN: user
KEYCLOAK_ADMIN_PASSWORD: user
# KEYCLOAK_IMPORT: /tmp/realm-import.json
#setting postgres as keycloak's database
KC_DB_URL: jdbc:postgresql://keycloak-postgres-db:6402/keycloak_postgres
KC_DB: postgres
DB_DATABASE: keycloak_postgres
KC_DB_USERNAME: root
KC_DB_PASSWORD: root
PROXY_ADDRESS_FORWARDING: "true"
KC_FEATURES: 'account-api'
KC_FEATURES_ACCOUNT_API: 'enabled'
# Keyclock can't handle IPv6 and crashes without this
# command: '-Djboss.bind.address.private=127.0.0.1 -Djboss.bind.address=0.0.0.0'
command:
- "start-dev --auto-build --hostname-strict=false -Dkeycloak.import=/opt/jboss/keycloak/realms/space-realm.json"
# - "bin/standalone.sh -Dkeycloak.profile.feature.account_api=enabled"
depends_on:
- keycloak-postgres-db
ports:
- 8080:8080
volumes:
- keycloak_data:/opt/jboss/keycloak/standalone/data/
# todo: add keyclock realm import data here
keycloak-postgres-db:
container_name: keycloak_postgres_db
image: postgres:12
hostname: keycloak-postgres-db
ports:
- "6402:6402"
environment:
PGPORT: "6402"
POSTGRES_DB: keycloak_postgres
POSTGRES_USER: root
POSTGRES_PASSWORD: root
PGDATA: ./data/postgres
volumes:
- keycloak_postgresdata:/data/postgres
restart: always
这是我的邮递员回复:
我很困惑为什么它是 HTML 文件?如何让用户在没有管理员身份的情况下进行自我管理?有人可以帮忙吗。将非常感谢您的帮助!
我也遇到了获取 HTML 作为响应的问题。 我通过在 Headers -> Accept: application/json
添加解决了这个问题[像这样][1] [1]:https://i.stack.imgur.com/2fkrh.png