==개요==
[[GBSWiki]] 계정으로 타 서비스에 로그인할수 있는 기능이다. 2023년 [[IRooM]] 프로젝트에 도입될 예정이다.
아래와 같은 방식으로 작동한다.
[[file:OAuth2.png]]
==문서==
토큰은 60분, 리프레쉬 토큰은 90분, 인증 코드는 1분의 유효시간을 가집니다.
===클라이언트 등록===
[[나태양(17기)]]에게 문의하세요.
==== 권한 ====
|| 권한 이름 || 상태(유저 권한) || id || email ||
|| id || O || O || X ||
|| id_email || O || O || O ||
===권한 부여 승인 코드 요청===
엔드포인트: /oauth2/login
메소드: GET
쿼리:
|| 이름 || 설명 ||
|| client_id || 클라이언트(서비스)의 ID ||
|| redirect_uri || 로그인 후 리다이렉트할 URI ||
|| scope || 권한 ||
응답: URI에 포함
리다이렉트: {redirect_uri}?code={응답 코드}
===토큰 요청===
엔드포인트: /oauth2/auth
메소드: POST
쿼리:
|| 이름 || 설명 ||
|| client_id || 클라이언트(서비스)의 ID ||
|| scope || 권한 ||
바디:
|| 이름 || 설명 ||
|| client_secret || 클라이언트(서비스)의 시크릿 키 ||
|| code || 승인 코드 ||
응답 예:
{
"access_token": "qc6wtFb7aeN167YcfUcPbzyqpC9v6UQd",
"expire": "2023-01-05 11:42:21",
"expire_refresh": "2023-01-05 12:12:21",
"refresh_token": "SUAr1hgmF9YLD4siRu1775K6PrPLVqwq",
"scope": "id_email"
}
===토큰 재발급===
엔드포인트: /oauth2/refresh
메소드: POST
쿼리:
|| 이름 || 설명 ||
|| client_id || 클라이언트(서비스)의 ID ||
|| scope || 권한 ||
바디:
|| 이름 || 설명 ||
|| client_secret || 클라이언트(서비스)의 시크릿 키 ||
|| refresh_token || 리프레쉬 토큰 ||
응답 예:
{
"access_token": "qc6wtFb7aeN167YcfUcPbzyqpC9v6UQd",
"expire": "2023-01-05 11:42:21",
"expire_refresh": "2023-01-05 12:12:21",
"refresh_token": "SUAr1hgmF9YLD4siRu1775K6PrPLVqwq",
"scope": "id_email"
}
===유저 정보 보기===
엔드포인트: /ex/user/info
메소드: POST
바디:
|| 이름 || 설명 ||
|| token || 토큰 ||
|| client_id || 클라이언트(서비스)의 ID ||
응답 예:
{
"acl": "owner",
"email": "gbs.s210023@ggh.goe.go.kr",
"id": "hegelty"
}