Skip to content

Commit 7701962

Browse files
committed
Add README
1 parent 4ba60f9 commit 7701962

1 file changed

Lines changed: 87 additions & 0 deletions

File tree

README.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Spring Boot API with React UI
2+
3+
This example app shows how to create a Spring Boot API and display its data with a React UI.
4+
5+
Please read [Bootiful Development with Spring Boot and React](https://developer.okta.com/blog/2017/12/06/bootiful-development-with-spring-boot-and-react) to see how this app was created.
6+
7+
**Prerequisites:** [Java 8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) and [Node.js](https://nodejs.org/).
8+
9+
> [Okta](https://developer.okta.com/) has Authentication and User Management APIs that reduce development time with instant-on, scalable user infrastructure. Okta's intuitive API and expert support make it easy for developers to authenticate, manage, and secure users and roles in any application.
10+
11+
* [Getting Started](#getting-started)
12+
* [Links](#links)
13+
* [Help](#help)
14+
* [License](#license)
15+
16+
## Getting Started
17+
18+
To install this example application, run the following commands:
19+
20+
```bash
21+
git clone https://github.com/oktadeveloper/spring-boot-react-example.git
22+
cd spring-boot-react-example
23+
```
24+
25+
This will get a copy of the project installed locally. To install all of its dependencies and start each app, follow the instructions below.
26+
27+
To run the server, cd into the `server` folder and run:
28+
29+
```bash
30+
./mvnw spring-boot:run
31+
```
32+
33+
To run the client, cd into the `client` folder and run:
34+
35+
```bash
36+
yarn && yarn start
37+
```
38+
39+
The primary example (without authentication) is in the `master` branch, while the Okta integration is in the `okta` branch. To check out the Okta branch on your local machine, run the following command.
40+
41+
```bash
42+
git checkout okta
43+
```
44+
45+
### Create an Application in Okta
46+
47+
You will need to [create an OpenID Connect Application in Okta](https://developer.okta.com/blog/2017/12/06/bootiful-development-with-spring-boot-and-react#create-an-oidc-app-in-okta) to get your values to perform authentication.
48+
49+
Log in to your Okta Developer account (or [sign up](https://developer.okta.com/signup/) if you don’t have an account) and navigate to **Applications** > **Add Application**. Click **Single-Page App**, click **Next**, and give the app a name you’ll remember. Change all instances of `localhost:8080` to `localhost:3000` and click **Done**.
50+
51+
#### Server Configuration
52+
53+
Set the `issuer` and copy the `clientId` into `server/src/main/resources/application.properties`.
54+
55+
**NOTE:** The value of `{yourOktaDomain}` should be something like `dev-123456.oktapreview.com`. Make sure you don't include `-admin` in the value!
56+
57+
```properties
58+
okta.oauth2.issuer=https://{yourOktaDomain}/oauth2/default
59+
okta.oauth2.clientId={clientId}
60+
```
61+
62+
#### Client Configuration
63+
64+
Set the `issuer` and copy the `clientId` into `client/src/App.tsx`.
65+
66+
```typescript
67+
const config = {
68+
issuer: 'https://{yourOktaDomain}/oauth2/default',
69+
redirectUri: window.location.origin + '/implicit/callback',
70+
clientId: '{clientId}'
71+
};
72+
```
73+
74+
## Links
75+
76+
This example uses the following libraries provided by Okta:
77+
78+
* [Okta Spring Boot Starter](https://github.com/okta/okta-spring-boot)
79+
* [Okta React SDK](https://github.com/okta/okta-oidc-js/tree/master/packages/okta-react)
80+
81+
## Help
82+
83+
Please post any questions as comments on the [blog post](https://developer.okta.com/blog/2017/12/06/bootiful-development-with-spring-boot-and-react), or visit our [Okta Developer Forums](https://devforum.okta.com/). You can also email developers@okta.com if you would like to create a support ticket.
84+
85+
## License
86+
87+
Apache 2.0, see [LICENSE](LICENSE).

0 commit comments

Comments
 (0)