redirect_uri라는게 정확히 뭔지 궁금합니다

무료호스팅을 이용해서 redirect_uri를 이용하려 합니다.

oauth폴더를 만들고 해봤는데 원하는값이 안받아와집니다.

정확히 리다이렉트 uri가 뭔지 궁금합니다.

설명이 잘 되어있는곳을 찾을 수 없군요…

2개의 좋아요

knifelemon님이 만든 페이지에서 로그인을 요청하게 되면 카카오의 로그인 페이지로 이동합니다. 사용자가 아이디/패스워드를 넣은 후 로그인에 성공하면 다시 knifelemon님이 만든 페이지로 돌아가야 하는데 그 돌아갈 페이지의 주소가 redirect_uri 입니다. 즉 oauth 폴더를 만드실게 아니라 로그인 성공 후 발급된 코드값을 받아줄 페이지가 필요합니다.
자세한 설명은 아래의 내용을 참조하시면 될 것 같습니다.
https://developers.kakao.com/docs/latest/ko/kakaologin/prerequisite#redirect-uri

먼저 답글 감사합니다.

말씀해주신 REST api를 참고하여 작성하려했습니다.

하지만 dothome이라는 무료 도메인을 이용해 테스트를 하려고 해봤지만 아래 문구만 리턴시키네요.

<!-- Main component for a primary marketing message or call to action -->
<div class="jumbotron vs-jumbo">
	<h1 class="c898989"><i class="fa fa-ban"></i>&nbsp;Error <font class="cDothome">403</font> Forbidden.</h1>
	<h2 class="cDothome"><b>엑세스가 금지되었습니다.</b></h2>
	<p class="c000">요청하신 페이지는 엑세스가 금지되었습니다.<br>
	요청하신 디렉토리내에 인덱스페이지가 없으신 경우 업로드 하신 후 접속해 보시기 바랍니다.</p>
</div>

내 애플리케이션 부분에도 Web부분에 저의 닷홈주소를 적어주었습니다.

이는 redirect uri 문제라기는 dothome의 설정 이슈인 것 같은데요. 외부에서 접속 가능한 페이지가 있나요?

연결페이지 하나있습니다.
https://dev.kakao.com/docs/js#카카오-로그인-예제:-커스톰-로그인-버튼을-이용한-카카오-로그인
에 나오는 소스를 html으로 업로드하여 http://계정.dothome.co.kr/login.html 와 같이 업로드하였습니다.

  1. http://계정.dothome.co.kr/login.html 는 브라우져에서 잘 뜨나요?
  2. 사용하신 소스는 JS 방식입니다. 계정.dothome.co.kr 이 앱설정에 잘 등록되어 있다면 JS 소스구현만으로 값을 받아올 수 있습니다. 그런데 어떤값을 원하시는건가요?

http://cafefiles.naver.net/20160531_86/role___play_1464659870437F6CCW_PNG/ĸó.PNG
와 같이 잘 보입니다.

JS로만 받아오는 방식보다 .Net 언어를 사용하여 받아오려합니다.

로그인 토큰은 어디서든 받아오든 상관이 없는것인가요?
처음부터 차근차근진행하려고 REST API에 코드받기 부분을 진행하려합니다.

REST API만으로 토큰까지 받아 앱 로그인까지 진행하려합니다.

login.html 에서 사용하신 소스는 JS 이기 때문에 REST API 방식으로 코드를 받아올 수 없습니다. 대신 붙여넣은 JS소스에 약간의 추가 구현만 하시면 code발급과정없이 accessToken을 바로 발급받게 됩니다. 그대로 붙여넣으셨다면
로그인 버튼을 누르고 → 카카오계정으로 로그인 → 다시 본창에서 alert 창이 뜨면서 accessToken값이 나타나게 됩니다.
여기서 오류가 있다면 dev.kakao.com 에서 발급한 JS KEY를 잘 삽입하셨는지, dev.kakao.com 의 앱설정에서 해당 도메인인 XXXX.dothome.co.kr 을 잘 등록하셨는지 확인해주세요.

위는 JS 로의 구현시의 설명이고 .Net 을 사용하실거면 서버에 .Net 이 돌아가게 설정을 먼저 하시고 .Net 에서 http call이 가능하도록 간단한 구현부터하신 후에 redirect_uri을 확인하시는게 좋을 것 같습니다.
이후 REST API 는 이 문서를 https://dev.kakao.com/docs/restapi 참고하셔서 구현하세요.
.Net 의 예제는 없지만 https://devtalk.kakao.com/c/rest-api/rest-api-faq 에 보시면 Java, PHP 로 된 예제들이 있습니다. 약간이나마 도움이 되실 것 같습니다.

감사합니다. 하나 더 질문 가능한가요?

.Net에서 코드를 짜서

의 링크를 읽어와봤습니다.

그러자

`<div id="daumkakaoWrap" class="wrap_agree">
  <div id="daumkakaoHead" class="head_agree">
    <h1 class="tit_agree">카카오계정 로그인</h1>
  </div>
  <hr class="hide">
  <div id="daumkakaoContent">
    <article id="mArticle">
        <div class="info_app">
          <span class="thumb_app"><img src="https://mud-kage.kakao.com/14/dn/btqbjCnoZ8A/MyiKigHpJbSKusX0u3TPL1/o.jpg" width="59" height="59" class="img_app" alt="app"></span>
          <span class="desc_app">
            <em class="txt_by">개인</em>
            <strong class="txt_name">My.NetTest</strong>            
          </span>
        </div>
      <form id="confirmForm" method="post" class="info_interlink">
       
        <p class="desc_info"></p>

        <input id="userOAuthApproval" name="user_oauth_approval" value="false" type="hidden"/>
        <input name="stsc" value="LR71Tcb39hN4yuhBeF1mffym8-n8BTda4MceR48bc4sy4pnJVgf2y5ljR4YrMP4PpIRCgJU3KGGRB_RfR06gafoqJfXs221vJjUPCpbgzYZ_AmTGy3t9c7fx73sYbQH425PIukQG5zF4r0mKnYBQ9hnxeYXVY5PKCLpr8nqn8o8bPrnQMCosbzxR350jl8OEv5cCnD4XO1ZlM32YLBQctT0OHl4UF0dRmbxmphW-qPPVhOXthIoVtIBW8sXSO8pab3rUa_lAZGIZd_UMz0wo-Z_Dypt0W_Y3wVZSREPtK9E" type="hidden"/>
        

        
        

        
        
          
            <h3>카카오 개인정보 제3자 제공동의</h3>
            <p>이 서비스는 카카오계정으로 연결을 시작하기 위하여 아래 개인정보를 요청합니다.</p>
            <div class="info_box">
              <div>- 제공받는 자: 개인</div>
              <div>- 제공받는 정보: 프로필 정보(닉네임/프로필 사진)</div>
              <div>- 제공받는 목적: My.NetTest 서비스 제공을 위해</div>
              <div>- 보유기간: 서비스 탈퇴 시 지체없이 파기</div>
            </div>
          
          
            <h3>서비스의 접근 권한</h3>
            <p>이 서비스는 아래의 접근 권한을 가질 수 있습니다.</p>
            
              <div class="info_box">
                카카오스토리 글 목록
              </div>
            
          
        

        
        

        

        <div class="actions btn_split">
          
          <button id="denyButton" type="button" class="btn btn_noagree">동의안함</button>
          
          <button id="acceptButton" type="button" class="btn btn_agree" disabled>동의</button>
        </div>
        
      </form>
    </article>
  </div>
  
</div>

라고 되더군요.
코드받는거에는 {redirect_uri}?code={authorize_code} 형식으로 받아진다고 쓰여있는데… 저는 왜 저렇게 될까요?

저 화면은 정상적인 화면입니다. code를 넘겨주기 위해서는 로그인한 사용자의 동의가 필요합니다. 동의를 해야만 {redirect_uri}?code={authorize_code} 페이지로 전환됩니다. 동의과정은 한번만 이루어집니다.

감사합니다. ㅎㅎ

동의과정을 한 후 다시 해당링크에서 코드를 카지고 오려했습니다.

라고 400 오류를 반환하네요…

보여주신 화면만으로는 원인을 알 수 없습니다. 닷넷쪽 오류인것 같네요

Public Async Sub GetCode()
        Dim getReq As HttpWebRequest = WebRequest.Create("https://kauth.kakao.com/oauth/authorize?client_id=7ed6e0361ccdf992c993ad189834f076&redirect_uri=https://kauth.kakao.com/oauth&response_type=code")
        With getReq
            .Host = "kauth.kakao.com"
            .Method = "GET"
            .KeepAlive = False
            .UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0"
            .CookieContainer = logincookie
            .AllowAutoRedirect = True
            .PreAuthenticate = True
        End With

        Dim response As System.Net.HttpWebResponse = Await getReq.GetResponseAsync()

        Dim html As String = Nothing
        Using sr As New StreamReader(response.GetResponseStream, Encoding.UTF8)
            html = Await sr.ReadToEndAsync
        End Using

        response.Dispose()

        Clipboard.SetText(html)
        MsgBox(html)
    End Sub

이렇게 작성하였습니다…
동의를 하기전에는 로그인하라는 카카오페이지 html소스가 복사되었지만 동의를 한 후에는 400오류만 반환하네요.
AbortDelegate에는 쓰기 전용 속성은 지원되지 않습니다. 라는데
해당값은 GET인데 POST로 해야하나요?

  • 웹에서 로그인하고 해당링크를 접속하니깐 리다이렉트 uri 미스매치뜨네요… 혹시몰라 저의 닷홈주소로도 바꿔봤는데도 미스메치가 뜹니다…
    error=“redirect_uri_mismatch”, error_description=“Invalid redirect: https://계정.dothome.com/oauth does not match one of the registered values. Please check app settings on kakao developer site.”

WebRequest.Create 네 넘겨주는 url 이 잘못되었습니다. redirect_uri 에는 xxx.dothome.com이 넘어가야 할 것 같네요.
그리고 등록되어 있는 주소가 xxxxx.dothome.co.kr 이네요. 이것도 확인해주세요.

redirect_uri를 http://계정.dothome.co.kr/oauth 로 해봤습니다. 그래도 400오류가 뜹니다.

애플리케이션 도메인주소도 http://계정.dothome.co.kr에 /oauth입니다…

redirect_uri 파라미터는 https://로 주셨는데 등록은 http:// 로 해놓으셨네요. 한번 같게 해보시겠어요?

http://로 교체했는데 이제 400오류대신
페이지를 표시할 수 없습니다.</b></h2> <p class="c000">요청하신 파일을 찾을 수 없거나, 서버에서 제거 되었습니다.<br> URL을 확인해 주시기 바랍니다.

라는 오류가 리턴됩니다.

웹 서버가 https만 지원하는 서버인가요? 그렇다면 둘 다 https 로 맞춰주시는게 좋겠네요.

웹서버는 http만 지원합니다.