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>