Я хочу создать следующую схему
- Клиент отправляет аутентификацию запрос
POST localhost/realms/MY_REALM/protoco/openid-connect/token
{
"login": "my_login",
"password": "my_passsword"
}
Response:
JWT token
- Клиент отправляет запросы с токеном JWT
В этом примере я могу получить токен следующим образом:
curl -k --data "grant_type=client_credentials&client_id=fastapi-client&client_secret=Gbpnp5W0by7xmyuFcnIcC6GCtkPVgeXL" http://localhost:8080/realms/fastapi-re ... nect/token
Но как мне получить токен по логину и паролю?
Думаю, мне следует изменить схему аутентификации https://github.com/akoserwal/ keycloak-integrations/blob/main/fastapi-keycloak/fastapi_keycloak/keycloak.py
# Keycloak configuration
KEYCLOAK_SERVER_URL = "http://localhost:8080"
KEYCLOAK_REALM = "fastapi-realm"
KEYCLOAK_CLIENT_ID = "fastapi-client"
KEYCLOAK_CLIENT_SECRET ="None" # Use None for public clients
ALGORITHM = "RS256"
# Initialize KeycloakOpenID
keycloak_openid = KeycloakOpenID(
server_url=f"{KEYCLOAK_SERVER_URL}",
client_id=KEYCLOAK_CLIENT_ID,
realm_name=KEYCLOAK_REALM,
client_secret_key=KEYCLOAK_CLIENT_SECRET,
verify=True
)
config_well_known = keycloak_openid.well_known()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
Подробнее здесь: https://stackoverflow.com/questions/791 ... d-password
Мобильная версия