forked from mystiq/dex
dec5d90657
Adds consistency to existing samples for users, connectors, etc., as well as protects users from accidental changes to files under Git, which is why there are samples after all.
59 lines
2 KiB
Markdown
59 lines
2 KiB
Markdown
# Running Examples
|
|
|
|
The quickest way to start experimenting with dex is to run a single dex-worker locally, with an in-process database, and then interact with it using the example programs in this directory.
|
|
|
|
## Build Everything and Start dex-worker
|
|
|
|
First, build the example webapp client and example CLI client.
|
|
|
|
```console
|
|
./build
|
|
```
|
|
|
|
Now copy the example configurations into place to get dex configured.
|
|
You can customize these later but the defaults should work fine.
|
|
|
|
```console
|
|
cp static/fixtures/clients.json.sample static/fixtures/clients.json
|
|
cp static/fixtures/connectors.json.sample static/fixtures/connectors.json
|
|
cp static/fixtures/users.json.sample static/fixtures/users.json
|
|
cp static/fixtures/emailer.json.sample static/fixtures/emailer.json
|
|
```
|
|
|
|
With `dex-worker` configuration in place we can start dex in local mode.
|
|
|
|
```console
|
|
./bin/dex-worker --no-db &
|
|
```
|
|
|
|
## Example Webapp Client
|
|
|
|
Build and run the example app webserver by pointing the discovery URL to local Dex, and
|
|
supplying the client information from `./static/fixtures/clients.json` into the flags.
|
|
|
|
```console
|
|
./bin/example-app \
|
|
--client-id=example-app \
|
|
--client-secret=example-app-secret \
|
|
--discovery=http://127.0.0.1:5556
|
|
```
|
|
|
|
Visit [http://localhost:5555](http://localhost:5555) in your browser and click "login" link.
|
|
Next click "Login with Email" and enter the sample credentials from `static/fixtures/connectors.json`:
|
|
|
|
* email: `elroy77@example.com`
|
|
* password: `bones`
|
|
|
|
The example app will dump out details of the JWT issued by Dex which means that authentication was successful and the application has authenticated you as a valid user.
|
|
You can play with adding additional users in connectors.json and users.json.
|
|
|
|
## Example CLI Client
|
|
|
|
The example CLI will start, connect to the Dex instance to gather discovery information, listen on `localhost:8000`, and then acquire a client credentials JWT and print it out.
|
|
|
|
```console
|
|
./bin/example-cli \
|
|
--client-id example-cli \
|
|
--client-secret examplie-cli-secret \
|
|
--discovery=http://127.0.0.1:5556
|
|
```
|