This example app shows how to create a Spring Boot API and display its data with a React UI.
Please read Bootiful Development with Spring Boot and React to see how this app was created.
Prerequisites: Java 8 and Node.js.
Okta 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.
To install this example application, run the following commands:
git clone https://github.com/oktadeveloper/spring-boot-react-example.git
cd spring-boot-react-example
This will get a copy of the project installed locally. To install all of its dependencies and start each app, follow the instructions below.
To run the server, cd into the server
folder and run:
./mvnw spring-boot:run
To run the client, cd into the client
folder and run:
yarn && yarn start
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.
git checkout okta
You will need to create an OpenID Connect Application in Okta to get your values to perform authentication.
Log in to your Okta Developer account (or sign up 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.
Set the issuer
and copy the clientId
into server/src/main/resources/application.properties
.
NOTE: The value of {yourOktaDomain}
should be something like dev-123456.oktapreview.com
. Make sure you don't include -admin
in the value!
okta.oauth2.issuer=https://{yourOktaDomain}/oauth2/default
okta.oauth2.clientId={clientId}
Set the issuer
and copy the clientId
into client/src/App.tsx
.
const config = {
issuer: 'https://{yourOktaDomain}/oauth2/default',
redirectUri: window.location.origin + '/implicit/callback',
clientId: '{clientId}'
};
This example uses the following libraries provided by Okta:
Please post any questions as comments on the blog post, or visit our Okta Developer Forums. You can also email developers@okta.com if you would like to create a support ticket.
Apache 2.0, see LICENSE.