redirect_uri 설정 완료 이후 정상적으로 토큰이 생성되는 것으로 보이나,
javascript sdk 및 rest_api를 통하여 토큰 확인이 불가능한 상태입니다.
http://220.90.200.89:8000/index
페이지에서
http://220.90.200.89:8000/oauth
로 리다이렉트 됩니다.
js sdk 는 다음 방법으로 호출합니다.
function requestUserInfo() {
Kakao.Auth.setAccessToken('token');
Kakao.API.request({
url: '/v2/user/me',
})
.then(function(res) {
alert(JSON.stringify(res));
})
.catch(function(err) {
alert(
'failed to request user information: ' + JSON.stringify(err)
);
});
}
Rest api는 Fastapi로 전달하여 호출하며 requests module 을 사용하여 다음과 같이 호출합니다.
https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#get-token-info
@app.get("/kakao")
def check_token(token: str):
print(token)
# get request /v1/user/access_token_info
url = "https://kapi.kakao.com/v1/user/access_token_info"
headers = {
'Authorization': 'Bearer ' + token,
}
response = requests.get(url, headers=headers)
print(response.json())
return response.json()
앱 ID : 809449
안녕하세요
테스트시 사용된 IP는 10.205.115.157
이나 허용 서버 IP주소에는 등록되어 있지 않습니다.
앱 809449은 허용 서버 IP 주소 옵션이 설정 되어 있습니다.
내 애플리케이션 > 고급 설정 > 허용ip 주소 옵션을 삭제 하였습니다.
아직 동일한 증상이 나타납니다.
설정하신 redirect_uri 로 정상적으로 302 리디렉션되었습니다.
서비스측에서 이후 접근코드 발급요청을 하지 않으신것으로 확인됩니다.
http://220.90.200.89:8000/oauth?code=O_2RmdslbhQGg9...
재문의 드립니다.
리디렉션 되는 것까지 확인이 된 상황이었으며 이후 서비스 호출에서 지속적으로
-401, this access token does not exist 가 반환되는 점에 대한 문제입니다.
위 오류는 사용하신 엑세스 토큰이 유효하지 않은경우 발생합니다.
서버측 로그에는 여전히 접근토큰을 발급 받으신 이력이 없으십니다.
접근토큰을 발급 받으셨다면 해당 토큰값을 개인 메시지로 전달 부탁드립니다.
첨부 이미지를 보면, 백앤드에서 접근토큰 발급 후, 프론트에서 Kakao.Auth.setAccessToken()
을 호출하셨을것 같은데요
서버측에는 로그에 접근토큰 발급 이력이 없습니다.
위의 sdk 예시를 그대로 옮긴 코드이며
- js sdk를 이용해서 접근 토큰 및 사용자 정보 요청
- js sdk를 이용하여 접근 토큰 발행 후 Rest API로 검증
두 경우 모두 동일한 응답을 받고 있습니다.
다만 위의 데모에서 코드 취득 후 이미지에 첨부한 함수를 이용하여 사용자 정보를 요청 하였을 경우 정상적으로 사용자 정보를 가져올 수 있습니다.
<img>...
<사용자의 개인정보가 포함되어 임시 조치 하였습니다.>
<img>...
<사용자의 개인정보가 포함되어 임시 조치 하였습니다.>
현재 테스트 페이지(앱 809449)에서 받은 코드
xSUFfv8624sGTbBeYBj2TCN******
데모페이지 (데모 앱)에서 받은 코드
1HOrwBncar81W0jYdUZ3r0******
입니다.
디벨로퍼스에서 제공되는 데모에 기반하여
사용자 정보 조회하기(/v2/user/me
) 사용을 위해서는 다음과 같이 개발되어야 합니다.,
- 로그인 페이지 진입 (인가코드 받기)
Kakao.Auth.authorize()
- 서비스측 백앤드 서버에서 인가코드로 접근토큰 발급
– 발급 받은 접근토큰은 임시로 쿠키에 저장
- 쿠키에서 접근토큰을 꺼내 JS SDK에 할당
Kakao.Auth.setAccessToken()
- 사용자 정보조회 호출
현재 1단계까지만 진행하시고 바로 4단계를 진행 하신듯합니다.
위 코드는 접근코드를 발급받기 위한 인가코드 입니다. 위 단계에서 1단계 까지만 진행되셨습니다.
위 코드는 디벨로퍼스의 샘플 앱(kakao-sdk-sample)에서 발급 받은 접큰토큰입니다.
데모 페이지에서 위의 3단계 까지 마친 뒤, 해당 토큰으로 사용자 정보조회를 합니다.