OAuth : 로컬 URL로 테스트하는 방법?


155

OAuth 버튼 을 테스트하려고하는데 모두 (Facebook, Twitter, LinkedIn) 로컬 URL 에서 테스트하거나 사용할 수 없다는 오류가 나타납니다 .

사람들이 비 개발비 로컬 연결 환경 을 필요로하는 것처럼 보이는 경우 사람들은 일반적으로 OAuth 개발을 어떻게 수행 합니까?


나는 그것에 대해 언젠가 대답했다 : stackoverflow.com/a/10410838/604511
Jesvin Jose

답변:


133

2016 년 10 월 업데이트 : 가장 쉬움 : 항상을 가리키는 lvh.me 를 사용 하십시오127.0.0.1 .

이전 답변 :

콜백 요청은 브라우저에서 HTTP 리디렉션 응답으로 발행되므로 localhost127.0.0.1 이 아닌 도메인을 가리 키도록 .hosts 파일 또는 이와 동등한 파일을 설정할 수 있습니다 .

예를 들어 Twitter에 다음 콜백을 등록한다고 가정하십시오 http://www.publicdomain.com/callback/. www.publicdomain.com호스트 파일에서 127.0.0.1 을 가리키고 트위터가 www.publicdomain.com에서 성공적인 DNS 조회를 수행 할 수 있는지 확인하십시오 . 즉, 도메인이 존재해야하며 요청시 특정 콜백이 200 상태 메시지를 반환해야합니다.

편집 :

방금 다음 기사를 읽었습니다 .http : //www.tonyamoyal.com/2009/08/17/how-to-quickly-set-up-a-test-for-twitter-oauth-authentication-from-your-local -machine / ,이 질문에서 링크되었습니다 : Twitter oAuth callbackUrl-localhost development .

기사를 인용하려면 :

URL 단축 서비스 인 bit.ly를 사용할 수 있습니다. [http // localhost : 8080 / twitter_callback과 같은 로컬 호스트 URL]을 단축하고 단축 된 URL을 Twitter 앱에서 콜백으로 등록하십시오.

이것은 .hosts 파일에서 다루는 것보다 쉽습니다.

현재 (Aug '14) bit.ly는 localhost 로의 링크 포워딩을 허용하지 않습니다. 그러나 Google 링크 단축기는 작동합니다.

PS 편집 : (Nov '18) : Google 링크 단축기가 로컬 호스트 또는 127.0.0.1에 대한 지원을 중단했습니다.


3
나는 서버가 callbackurl을 호출한다고 생각했고, 이제 oauth가 클라이언트를 메신저로 사용하고 서버간에 연결이 이루어지지 않아 훨씬 간단하다는 것을 알았습니다.
크리스티안 베누아

10
lvh.me는 Levi Cook이라는 신사가 소유하고 있으며 ( gist.github.com/levicook/563675 참조 ) 개인 소유입니다. 그는 좋은 사람처럼 보이지만 글로벌 당국에 의해 공식적으로 승인 된 도메인이 아니기 때문에 "이론적으로"특정 시점에서 작동을 멈출 수 있습니다.
Mario Peshev 2016 년

4
글을 쓰는 시점에서 Google은 .me리디렉션 URL에 (와 같은 ) 멋진 도메인 확장을 허용하지 않는 것 같습니다 . 결과적으로 lvh.me가 작동하지 않았습니다. 대신 lacolhost.com 에서 성공했습니다 .
PullJosh

3
lvh.me의 소유자는 ... 당신의 인증 코드를 모두 수집을 시작할 수
테일러 뷰캐넌에게

2
@JonNylander 인증 코드와 상태를 투명하게 저장하고 여전히 로컬 호스트로 다시 리디렉션하는 다른 사이트를 가리 키도록 DNS 레코드를 쉽게 변경할 수 있습니다. DNS를 정기적으로 확인하지 않으면 이미 액세스 할 때까지 알 수 없습니다. 바로 눈에 띄는 것은 브라우저 컨텍스트 외부에서 사용하는 사람들입니다.
Taylor Buchanan

18

또는 https://tolocalhost.com/ 을 사용 하여 콜백을 로컬 사이트로 리디렉션하는 방법을 구성 할 수 있습니다 . 호스트 이름을 지정할 수 있습니다 (localhost와 다른 경우 (예 : yourapp.local 및 포트 번호)). 개발 목적으로 만 사용하십시오.


13

ngrok : https://ngrok.com/을 사용할 수도 있습니다 . 로컬 호스트에서 공용 서버를 실행하기 위해 항상 사용합니다. 도움이 되었기를 바랍니다.

무료로 사용자 정의 도메인을 제공하는 다른 옵션은 serveo.net 및 https://localtunnel.github.io/www/


1
생각보다 쉬웠습니다! 방금 내 계정을 만들어 설치하고 실행했는데 ./ngrok http 8080 -host-header="localhost:8080"공개 URL로 실행 중이었습니다.
Miguel Reyes

3

Google은 http://webporject.devor .loc및 .etc를 사용하여 localhost에서 테스트 인증 API를 허용하지 않으며 로컬 url ( http://webporject.dev)도 단축 된 Google 짧은 링크를 사용합니다 bit.ly:). Google은 시작하는 URL 만 허용합니다 http://localhost/...

구글 인증 API를 테스트하려면 다음 단계를 따라야합니다 ...

새로운 별칭을 설정

당신이 사용하는 경우 openserver설정 패널로 이동하여 클릭 aliases tab하고 드롭 다운을 클릭 한 후 찾아 localhost그것을 선택합니다.

이제 첫 번째 드롭 다운 옆에있는 다음 드롭 다운을 클릭하여 로컬 웹 프로젝트 루트 폴더를 선택해야합니다.

버튼을 클릭 add하고 opensever를 다시 시작하십시오.

이제이 링크에서 로컬 프로젝트를 사용할 http://localhost/ 수 있습니다.이 로컬 URL을 Google Auth API에 붙여 넣을 수 있습니다 redirect url...


3

Windows 또는 Linux Windows에서 호스트 파일을 편집 할 수 있습니다. C : \ Windows \ System32 \ Drivers \ etc \ hosts Linux : / etc / hosts

localhost 이름 확인은 DNS 자체에서 처리됩니다.

127.0.0.1 mywebsite.com

테스트를 마친 후에는 추가 한 줄을 주석 처리하여 비활성화합니다.

127.0.0.1 mywebsite.com


고맙습니다. 또한 포트 3000에서 Node.js를 사용하는 경우 mywebsite.com:3000
flow3r

3

Mac 사용자의 경우 /etc/hosts파일을 편집 하십시오. sudo vi /etc/hosts읽기 전용 인 경우 사용해야 합니다. 인증 후 oauth 서버는 콜백 URL을 전송하고 해당 콜백 URL이 로컬 브라우저에서 렌더링되므로 로컬 DNS 설정이 작동합니다.

127.0.0.1       mylocal.com

0

Google OAuth를 참조로 사용

  • 당신에 OAuth 클라이언트

    1. 귀하의 추가 앱 URI의 예(http://localhost:3000)공인 자바 스크립트 기원 의 URI
  • 당신에서 의 OAuth 동의 화면

    1. 추가 mywebsite.com승인 된 도메인
  • Windows C:\Windows\System32\Drivers\etc\hosts Linux : /etc/hosts추가 할 Windows 또는 Linux에서 hosts 파일을 편집 하십시오 127.0.0.1 mywebsite.com (다른 127.0.0.1이 있으면 NB 주석 처리).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.