GAuth SDK 사용법 - Java

담당자 - 조재영#2319

의존성 추가

gradle

build.gradle의

repositories

// build.gradle
maven { url 'https://jitpack.io' }

// or

// build.gradle.kts
maven { url = uri("https://jitpack.io") }

dependencies

// build.gradle
implementation 'com.github.GSM-MSG:GAuth-SDK-Java:v2.0.1'

// or

// build.gradle.kts
implementation("com.github.GSM-MSG:GAuth-SDK-Java:v2.0.1")

maven

pom.xml

repositories

<repository>
    <id>jitpack.io</id>
    <url>https://jitpack.io</url>
</repository>

dependencies

<dependency>
	  <groupId>com.github.GSM-MSG</groupId>
	  <artifactId>GAuth-SDK-Java</artifactId>
	  <version>v2.0.1</version>
</dependency>

빈등록과 DI의 경우는 스프링으로 진행하는 경우에만 헤당

Bean 등록
@Bean
public GAuth gauth() {
	return new GAuthImpl();
}
DI
@Component
public class Component{
	private GAuth gAuth;

	public Component(GAuth gAuth){
		this.gAuth = gAuth;
	}
}

코드발급

gAuth.generateCode(email, password);

해당 메서드를 사용해서 코드를 발급받을 수 있다.

public class GAuthCode {
    private String code;
}

코드 발급후 해당 객체를 리턴한다.

토큰 발급

gAuth.generateToken(email, password, clientId, clientSecret, redirectUri);

이메일, 패스워드, 클라이언트 아이디, 클라이언트 시크릿, 리다이렉트 uri를 사용해서 토큰을 발급할 수도 있고

gAuth.generateToken(code, clientId, clientSecret, redirectUri);

코드, 클라이언트 아이디, 클라이언트 시크릿, 리다이렉트 uri를 사용해서 발급할 수도 있다.

public class GAuthToken {
    private String accessToken;
    private String refreshToken;
}

토큰 발급후 해당 객체를 리턴한다.

토큰 재발급

gAuth.refresh(refreshToken);

refreshToken을 통해서 토큰을 발급할 수 있다.

public class GAuthToken {
    private String accessToken;
    private String refreshToken;
}

토큰 발급후 해당 객체를 리턴한다.

유저 정보

gAuth.getUserInfo(accessToken);

accessToken을 이용해서 유저정보를 가져올 수 있다.

public class GAuthUserInfo {
    private String email;
    private String name;
    private Integer grade;
    private Integer classNum;
    private Integer num;
    private String gender; // MALE | FEMALE
    private String profileUrl;
    private String role; // ROLE_STUDENT | ROLE_TEACHER
}

유저 정보를 해당 객체에 담아서 리턴한다.

예외

응답코드가 200이 아니면 예외코드를 담은 GAuthException을 던짐