>  Q&A  >  본문

리디렉션 서버 없이 OAuth 2.0을 사용할 수 있나요?

<p>SurveyMonkey API와 상호 작용하는 기본 Java 기반 클라이언트를 만들려고 합니다. </p> <p>SurveyMonkey를 사용하려면 OAuth 2.0을 사용하여 장기 액세스 토큰을 생성해야 하는데, 이는 제가 잘 알지 못합니다. </p> <p>몇 시간 동안 인터넷 검색을 했고 대답은 '아니요'라고 생각했지만 다음 사항을 확인하고 싶었습니다. </p> <p>일부 클라우드에 자체 리디렉션 서버를 설정하지 않고도</strong>SurveyMonkey와 상호작용하는 간단한 Java 클라이언트를 작성할 수 있나요? </p> <p>OAuth 2.0에서 생성된 토큰을 받기 위해서는 나만의 온라인 서비스가 필요하다고 생각합니다. SurveyMonkey가 토큰을 고객에게 직접 보내도록 할 수는 없나요? </p> <p>나만의 사용자 정의 서블릿을 어딘가에 설정하고 이를 리디렉션_uri로 사용하는 경우 올바른 흐름은 다음과 같습니다.</p> <올> <li>Java 클라이언트는 SurveyMonkey로부터 토큰을 요청합니다. 여기서 Redirect_uri는 내 사용자 정의 서블릿의 URL입니다. </li> <li>SurveyMonkey는 토큰을 내 맞춤 서블릿의 URL로 보냅니다. </li> <li>Java 클라이언트는 토큰을 얻을 때까지 사용자 정의 서블릿의 URL을 폴링합니다. </li> </ol> <p>맞나요? </p>
P粉710478990P粉710478990445일 전634

모든 응답(2)나는 대답할 것이다

  • P粉949190972

    P粉9491909722023-08-23 18:29:31

    예, 콜백 URL 없이 OAuth2를 사용할 수 있습니다. RFC6749에서는 여러 프로세스를 소개합니다. 암시적 흐름(현재 더 이상 사용되지 않음[1])과 인증 코드 흐름(Authorization Code)에는 리디렉션 URI가 필요합니다. 그러나 리소스 소유자 암호 자격 증명 흐름(또한 더 이상 사용되지 않음[1])은 필요하지 않습니다.

    RFC6749 출시 이후 리디렉션 URI가 필요하지 않은 다른 사양도 출시되었습니다.

    또한 OpenID Connect를 사용할 때 응답 패턴은 redirect_uri 매개변수에 대한 리디렉션일 필요는 없지만 해당 엔드포인트에 대한 POST 요청일 수 있습니다. 자세한 내용은 OAuth 2.0 양식 POST 응답 패턴 사양을 참조하세요.

    어쨌든 위 인증 유형이 귀하의 요구 사항에 맞지 않으면 맞춤 인증 유형을 생성할 수 있습니다.


    [1]: OAuth 2.1 사양(초안 07)

    회신하다
    0
  • P粉713866425

    P粉7138664252023-08-23 16:15:15

    완전히 정확하지는 않습니다. OAuth 프로세스의 핵심은 사용자(귀하를 대신하여 데이터에 액세스하는 클라이언트)가 귀하에게 자신의 데이터에 액세스할 수 있는 권한을 부여해야 한다는 것입니다.

    인증 지침을 참조하세요. 사용자를 OAuth 인증 페이지로 보내야 합니다:

    으아악

    이렇게 하면 귀하가 액세스를 요청하는 계정 부분(예: 설문조사 보기, 응답 보기 등)을 알려주는 페이지가 사용자에게 표시됩니다. 사용자가 해당 페이지에서 "승인"을 클릭하여 승인하면 SurveyMonkey는 자동으로 리디렉션 URI로 설정한 페이지로 이동하고(위 URL의 리디렉션 URI가 애플리케이션 설정에 설정된 것과 일치하는지 확인) 다시 인증 코드로 돌아갑니다.

    따라서 리디렉션 URL이 https://example.com/surveymonkey/oauth인 경우 SurveyMonkey는 인증 코드를 사용하여 사용자를 해당 URL로 리디렉션합니다.

    https://example.com/surveymonkey/oauth?code=<auth_code>

    그런 다음 해당 인증 코드를 사용하여 https://api.surveymonkey.net/oauth/token?api_key=<your_api_key>에 POST 요청을 보내고 다음 POST 매개변수를 제공하여 액세스 토큰을 교환해야 합니다.

    으아악

    이렇게 하면 사용자 계정의 데이터에 액세스하는 데 사용할 수 있는 액세스 토큰이 반환됩니다. 사용자에게 액세스 토큰을 제공할 필요는 없으며 사용자 계정에 액세스하는 데 사용됩니다. 폴링이나 기타 작업이 필요하지 않습니다.

    자신의 계정에만 접속하는 경우, 애플리케이션 설정 페이지에서 제공되는 접속 토큰을 사용할 수 있습니다. 그렇지 않으면 자체 리디렉션 서버를 설정하지 않는 한 사용자에 대한 액세스 토큰을 얻을 수 있는 방법이 없습니다(모든 사용자가 동일한 그룹에 속하지 않는 한, 즉 동일한 계정에 여러 사용자가 속하지 않는 한 이에 대해서는 다루지 않겠습니다). SurveyMonkey는 귀하에게 인증 코드를 보낼 수 있는 장소가 필요합니다. 단지 요청만 할 수는 없습니다.

    회신하다
    0
  • 취소회신하다