Python Django / Keycloak / KeycloakOpenID / Вход в мое Django приложение с помощью Keycloak
Я пытаюсь подключить свое приложение Django к Keycloak и получить токен через API Keycloak. Сначала я протестировал процесс с помощью Postman, и все работает отлично; я получаю код состояния 200.
Однако, когда я пытаюсь реализовать это в своем приложении Django, я получаю код состояния 200, только если использую жестко закодированные переменные. Когда я пытаюсь использовать переменные, переданные из POST-формы, я получаю ошибку 401 Unauthorized.
Что я делаю не так?
Postman все работает отлично, я получаю код статуса 200.
Код Django на языке Python :
def get_token(self, username: str, password: str):
# username = "admin@exemple.com"
# password = "admin"
try:
token = self.get_keycloak_oidc().token(
username=username,
password=password,
grant_type="password",
)
self.token = token
log.error("Successfully obtained token.")
return self.token
except KeycloakAuthenticationError as e:
log.error(f"Failed to authenticate: {e}")
return None
def get_keycloak_oidc(self) -> KeycloakOpenID:
if not self._keycloak_oidc:
self._init_keycloak_oidc()
return self._keycloak_oidc
def _init_keycloak_oidc(self):
self._keycloak_oidc = KeycloakOpenID(
server_url=self.url,
client_id=self.client_id,
realm_name=self.realm,
client_secret_key=self.client_secret,
)
ЖЕСТКИЙ КОД = 200 СТАТУС PARAMS = 401 СТАТУС (оба одинаковые)
Ошибка :
401: b'{"error":"invalid_grant","error_description":"Invalid user credentials"}'