logo

Implicit 인증

Back end가 없는 환경에서 client_secret 정보를 노출하지 않고 인증을 받을 수 있습니다.
implicit 인증은 앱 등록 요청시 요청하셔야합니다.

[GET] https://auth.smtown.com/oauth/authorize?
client_id=0f19f14f-6f4a-43d4-b136-11111111111
&redirect_uri=http://localhost:8080/popup/callback
&response_type=token
&scope=profile.info
&state=xyz
&lang=zh
파라메타 필수여부 설명
client_id 필수 앱 등록 후 발급되는 client_id 입니다.
response_type 필수 token 고정
redirect_uri 필수 인증 결과를 보내는 앱의 redirect_uri 입니다. 앱의 redirect URL 중 하나와 일치해야 합니다.
scope 필수 사용자 동의가 필요한 리소스의 범위입니다. 공백으로 구분할 수 있습니다.
state 옵션 요청 위조 공격을 방지하기 위해 임의 생성 된 고유값입니다. 발송 된 값과 반환 된 값을 비교하여 위조를 방지할 수 있습니다.
lang 옵션 로그인 화면은 기본적으로 header의 accept-language를 기준으로 다국어를 지원합니다.
강제로 변환하고자 할 경우에 사용하세요. ko, en, ja, zh 기본값은 en 입니다.
성공 응답
[GET] http://localhost:8080/popup/callback#
access_token=2a324609ec94f18d614d4bc425de754
&token_type=bearer
&state=xyz
&expires_in=42523

파라메타가 Query?가 아닌 Fragment#으로 전달되니 주의하세요.

파라메타 설명
access_token 액세스 토큰입니다. 앱은 이 토큰을 사용하여 웹 API에 인증할 수 있습니다.
token_type 토큰 유형 값입니다. 모든 API에서 bearer형식만 지원합니다.
state 요청시 전달 된 state 값을 그대로 redirect_uri에 전달합니다.
expires_in access_token의 유효 기간(초) 입니다.
샘플
<a href="#" id="btn-login">로그인</a>
<script>
    window.onload = function(){
        document.getElementById('btn-login').onclick = function(e){
            window.open("https://auth.smtown.com/oauth/authorize?" +
                "client_id=0f19f14f-6f4a-43d4-b136-11111111111" +
                "&redirect_uri=http://localhost:8080/popup/callback" +
                "&response_type=token" +
                "&scope=profile.info" +
                "&state=xyz", "SMTOWN Authorize", "width=500,height=545");

            e.preventDefault();
        }
    }
</script>