안녕하세요
프론트에서 카톡 로그인을 한 후 얻은 값을 서버로 넘기고, 서버에서 친구목록을 불러오려고 합니다.
이 값을 postman으로 테스트 할때는 문제가 없는데, 서버에서 rest api를 사용하여 값을 받으려하면 제목과 같은 에러가 뜹니다.
access token은 헤더에 Authorization : ‘Bearer xxxxxxxx’ 과 같이 정상적으로 입력되고 있습니다.
dev talk에 같은 사례는 없는것 같아 문의드립니다.
감사합니다.
무엇인가 요청이 잘못되었을것 같아요. 요청형식이 올바른지 로그등을 찍어서 재확인이 필요합니다.

다음과 같이 node.js에서 작성한 소스코드입니다.
혹시 잘못된 점이 있을까요??
아 에러를 보니, 추측되는 요청은 다음과 같습니다.
{"msg":"insufficient scopes.","code":-402,"api_type":"FRIENDS","required_scopes":["friends"],"allowed_scopes":["account_email","talk_message"]}
즉, 환경의 차이는 아니고, 위의 http status 403에 code -402의 경우의 에러가 맞다면, 해당 유저가 친구 소셜관련 동의를 하지 않아서 생기는 에러인것 같아요. 사용자별로 동의를 한 유저는 성공하고, 동의를 하지 않은 유저는 실패 할것으로 예상됩니다.
이렇게 사용자가 동의를 하지 않았을 경우(보통 로그인 시에 동의창를 물어봅니다), 추가 동의가 필요합니다.
JS 기준 가이드는 다음과 같습니다.
https://developers.kakao.com/docs/latest/ko/kakaologin/js#additional-consent
테스트를 쉽게 하시기를 원하면 해당 에러가 나는 사용자를 unlink하시고, 다시 로그인을 하시면 동의창이 뜰꺼에요.
만약 여기서 동의를 하면 동의가 된것이고, 동의를 하지 않는다면 위와 같은 에러가 발생시 추가 동의 요청을 통해 사용전에 다시 동의 요청을 할 수 있습니다.
unlink 후에 다시한번 했습니다.
로그인 시도하고 전체동의를 완료했습니다. 그리고나서, 두가지 방법을 시도했는데
첫번째는 토큰을 받아오고, rest api로 친구목록을 불러오려는데 이 메세지가 뜹니다.

두번째는 JS SDK를 이용했을때는 정상적으로 찍히게 되었습니다.

서버단에서 rest api로는 친구목록을 볼 수 없는 건가요?
아 제가 제목에 있는 에러를 살짝 잊었었네요.
access token should not be null or empty
는 요청시에 access token이 잘 전달안될때의 에러입니다. 저도 조금 더 볼께요.
위 본문에서 access token의 text 값(지금은 이미지라 텍스트 복사해서 조사해 보려구요) 및 요청 시간 및 요청하는곳의 ip를 알려주실 수 있을까요?
access token이 요청으로 들어오지를 않는 케이스라서 해당 요청을 식별할수는 없는데요,
왠지 proxy등을 타면서 access token을 담은 header가 유실되는 환경이 아닌가 의심을 해 봅니다.
아… 정말 번거롭게해서 죄송합니다…
제가 request module을 쓰면서, 'headers’로 써야하는데… 'header’로 썼네요… ㅠㅠ
죄송합니다만… 마지막으로 질문 하나만 더 드리겠습니다.
혹시 친구목록을 불러올때 uuid의 expire time을 알려주실 수 있으실까요?
1개의 좋아요
uuid는 expire time이 없습니다~ 계정이 unique하다면 계속 그대로에요.