# 세종 Auth API

## 개요

![](https://3577294876-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L_Wo7SRUvbKJuPojzzZ%2F-LuSgnPr9Z2-AYqoDFGc%2F-LuSlbBpnr4kqQlKIoMW%2Fimage.png?alt=media\&token=b231cdba-c2ee-4b71-945c-1bb38a5d7648)

SOOJLE의 사용자는 기본적으로 세종대학교의 구성원이며, 이들은 모두 세종대학교 포탈 시스템의 계정을 소유하고 있다는 전제하에 본 API를 개발하였다. 본 API를 통해 이미 포탈 계정을 가지고 있는 모든 사용자에 대하여 별도의 회원가입 없이 곧바로 로그인을 수행할 수 있도록 하였다.

## API 동작 구조

* SOOJLE 서비스를 이용하는 사용자가 로그인 페이지에서 ID, PW를 SOOJLE 서버로 전송한다.
* SOOJLE 서버는 해당 정보를  HTTP 프트로콜을 통해 전송하여 세종대학교 본교 시스템에 접속을 시도한다.
* 승인이 된다면, 유효한 계정 정보로 인정하고 SOOJLE 서버에서 해당 정보를 바탕으로 자동으로 회원가입을 수행한다.
* 해당 정보는 SOOJLE DB에 모두 해쉬 처리되어 저장되며, 오직 인증 수단을 위하여 보존된다.
* 한 번이라도 해당 서비스에 접근한 사용자는 DB의 데이터를 통해 별도의 인증 과정 없이 바로 로그인을 수행한다.

## 접근 경로 명세

세종대학교 본교 시스템은 모두 포탈 시스템의 인증 체계를 거쳐 수행한다. 해당 Sejong Auth API는 다음과 같은 서비스에 접근하여 로그인을 수행한다.

| URL                                                        | 명세         |
| ---------------------------------------------------------- | ---------- |
| [http://sjulms.moodler.kr](http://sjulms.moodler.kr)       | 세종대 LMS    |
| [https://do.sejong.ac.kr](https://do.sejong.ac.kr)         | 세종대 두드림    |
| [https://portal.sejong.ac.kr](https://portal.sejong.ac.kr) | 세종대 포탈 시스템 |

각 사이트들의 구조 변화에 의하여 일시적으로 접근이 불가능해질 수 있으며, 3개의 타겟을 대상으로 병렬적으로 접속을 시도하고, 한 곳이라도 승인 판정이 반환되면 해당 계정 정보는 유효하다고 판단한다.

## Output

### 계정 인증 에 성공했을 경우

```coffeescript
return {
			"result":True,
			"name":name,
			"id":id,
			"major":major
		}
```

### 계정 인증에 실패했을 경우

실패한 요인은, 계정 정보 자체가 유효하지 않을 수도 있지만 시스템 자체에 접속이 되지 않아 인증 자체가 불가능한 상황도 포함된다.

```coffeescript
return {"result":False}
```

## 소스 코드 배포

{% embed url="https://github.com/iml1111/SJ_Auth" %}

### **실행 요구사항**

| 분류   | 설명          |
| ---- | ----------- |
| 플랫폼  | Github      |
| 라이센스 | MIT License |

| 분류    | 버전명          |
| ----- | ------------ |
| 개발 언어 | Python 3.7.1 |

###

