From 74da5c2ee6becde47aa37284a313a29623743077 Mon Sep 17 00:00:00 2001 From: Alain ROMEYER Date: Thu, 22 Nov 2018 16:12:58 +0100 Subject: [PATCH] support totp --- keycloak/keycloak_openid.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/keycloak/keycloak_openid.py b/keycloak/keycloak_openid.py index ca4d9ae..24e9707 100644 --- a/keycloak/keycloak_openid.py +++ b/keycloak/keycloak_openid.py @@ -158,7 +158,7 @@ class KeycloakOpenID: """ return NotImplemented - def token(self, username="", password="", grant_type=["password"], code="", redirect_uri=""): + def token(self, username="", password="", grant_type=["password"], code="", redirect_uri="", totp=None): """ The token endpoint is used to obtain tokens. Tokens can either be obtained by exchanging an authorization code or by supplying credentials directly depending on @@ -172,6 +172,7 @@ class KeycloakOpenID: :param grant_type: :param code: :param redirect_uri + :param totp :return: """ params_path = {"realm-name": self.realm_name} @@ -179,6 +180,9 @@ class KeycloakOpenID: "client_id": self.client_id, "grant_type": grant_type, "code": code, "redirect_uri": redirect_uri} + if totp: + payload["totp"] = totp + payload = self._add_secret_key(payload) data_raw = self.connection.raw_post(URL_TOKEN.format(**params_path), data=payload)