From ed7e8f5528ac2776d609df1242e30173caeb3814 Mon Sep 17 00:00:00 2001 From: Iamjava Date: Sat, 20 Apr 2024 18:45:14 +0200 Subject: [PATCH] improved example setup --- examples/basic/.gitignore | 3 ++- examples/basic/README.md | 6 +++++- examples/basic/img.png | Bin 0 -> 41629 bytes 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 examples/basic/img.png diff --git a/examples/basic/.gitignore b/examples/basic/.gitignore index 952ff17..085b1ab 100644 --- a/examples/basic/.gitignore +++ b/examples/basic/.gitignore @@ -1,4 +1,5 @@ .env keycloak_example/keycloak_data/* !keycloak_example/keycloak_data/keep -.idea \ No newline at end of file +.idea +target \ No newline at end of file diff --git a/examples/basic/README.md b/examples/basic/README.md index 528e199..2e3ee23 100644 --- a/examples/basic/README.md +++ b/examples/basic/README.md @@ -4,6 +4,7 @@ This is an exmple using Keycloak as the OIDC provider. Steps for statring the service and adding an account: - starting keycloak: `docker-compose -f keycloak/docker-compose.yml up` +- go to `http://localhost:8989` in your browser and login with admin/admin - create a new realm in keycloak - create a new client in the realm - add an account in the realm @@ -13,7 +14,10 @@ Steps for attaching the application to the OIDC provider: - copy the `.env.example` file to `.env` - generate your issuers IP (localhost in this case): `hostname -I | awk '{print $1}'` (THIS MAY CHANGE DEPENDING ON YOUR NETWORK) - set the `ISSUER` in the `.env` file to the IP -- set the `CLIENT_ID` in the `.env` file to the client id of the client you created in keycloak +- set the `CLIENT_ID` in the `.env` file to the client id of the client you created in keycloak (found under `Credentials`) +- set the URL as sen below (VERY BAD PRACTICE, DO NOT DO THIS IN PRODUCTION) - set the `CLIENT_SECRET` in the `.env` file to the client secret of the client you created in keycloak +- set the `APP_URL` in the `.env` file to `http://localhost:8080` +![img.png](img.png) diff --git a/examples/basic/img.png b/examples/basic/img.png new file mode 100644 index 0000000000000000000000000000000000000000..2d46e0519883d85ff22ea94c1577b4efbe4ff160 GIT binary patch literal 41629 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%0DMsoQ?jIp&W9-DuaUa@wG+4 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