Home > AI > Backend > SpringBoot > spring-boot-starter-oauth2-client >

How to build the SpringBoot OAuth client

Topic 1: Single Sign On With GitHub

Step 1: create the application with the following dependencies.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-test</artifactId>
    <scope>test</scope>
</dependency>

Step 2: the github configuration

spring.security.oauth2.client.registration.github.clientId = {client-id}

spring.security.oauth2.client.registration.github.clientSecret = {client-secrete}

Step 3: get the client id and client secrete from github

Settings / Developer settings / new OAuth App

Authorization URL would be http://localhost:8080/login/oauth2/code/github,

home page URL would be http://localhost:8080

Step 4: make the home page more fancy

resources/static/index.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <title>Demo</title>
    <meta name="description" content=""/>
    <meta name="viewport" content="width=device-width"/>
    <base href="/"/>
    <link rel="stylesheet" type="text/css" href="/webjars/bootstrap/css/bootstrap.min.css"/>
    <script type="text/javascript" src="/webjars/jquery/jquery.min.js"></script>
    <script type="text/javascript" src="/webjars/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
	<h1>Demo</h1>
	<div class="container"></div>
</body>
</html>

Dependencies

<dependency>
	<groupId>org.webjars</groupId>
	<artifactId>jquery</artifactId>
	<version>3.4.1</version>
</dependency>
<dependency>
	<groupId>org.webjars</groupId>
	<artifactId>bootstrap</artifactId>
	<version>4.3.1</version>
</dependency>
<dependency>
	<groupId>org.webjars</groupId>
	<artifactId>webjars-locator-core</artifactId>
</dependency>

Reference:

https://github.com/spring-guides/tut-spring-boot-oauth2/tree/main/simple

Leave a Reply