Keycloak账户自助管理API

问题描述 投票:0回答:1

我正在基于 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 文件?如何让用户在没有管理员身份的情况下进行自我管理?有人可以帮忙吗。将非常感谢您的帮助!

angular postman keycloak
1个回答
0
投票

我也遇到了获取 HTML 作为响应的问题。 我通过在 Headers -> Accept: application/json

添加解决了这个问题

[像这样][1] [1]:https://i.stack.imgur.com/2fkrh.png

© www.soinside.com 2019 - 2024. All rights reserved.