# SomOffice Demo App Features: * Login with Keycloak ## Setup 1. Install pyenv: ```bash curl https://pyenv.run | bash ``` 2. Install Python 3.8.6: ```bash pyenv install 3.8.6 ``` 3. Create virtualenv ```bash pyenv virtualenv 3.8.6 somoffice_demo ``` 4. Activate env ```bash pyenv activate somoffice_demo ``` 5. Install requirements.txt ```bash pyenv exec pip install -r requirements.txt ``` 6. Make migrations ```bash pyenv exec python manage.py makemigrations ``` 7. Execute migrations ```bash pyenv exec python manage.py migrate ``` ## Run AppServer In one shell start a Keycloak server: ```bash docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:18.0.1 start-dev ``` ```bash pyenv exec python manage.py runserver 0.0.0.0:8000 ``` ## Usage ### Create user ```sh curl -X POST \ -H 'Accept: application/json' \ -H 'Content-Type: application/json;charset=utf-8' \ --data-raw ' { "username": "demo5", "password": "demo", "locale": "ca" }' \ localhost:8000/api/admin/import_user/ ``` ### Login curl -X GET \ localhost:8000/ ```bash curl -X POST \ -H 'Accept: application/json' \ -H 'X-CSRFToken: aazWzC7fUt4rrYxRY6ZYgZZDmBUlQX8DvlM5Xo7psQHtZbOEfp0hLUdl0r8hjC09' \ -H 'Cookie: csrftoken=aazWzC7fUt4rrYxRY6ZYgZZDmBUlQX8DvlM5Xo7psQHtZbOEfp0hLUdl0r8hjC09' \ -H 'Content-Type: application/json;charset=utf-8' \ --data-raw '{"username":"demo","password":"demo"}' \ localhost:8000/api/auth/login/ ``` ### Profile ```bash curl -X GET \ -H 'Accept: application/json' \ -H 'Cookie: sessionid=<SESSION ID>' \ localhost:8000/api/profile/ ```