OAuth:ローカルURLでテストする方法は?


154

私はOAuthボタンをテストしようとしていますが、すべて(Facebook、Twitter、LinkedIn)は、ローカル URL からはテストまたは使用できないことを示すエラーを返します。

彼らはすべての必要とするように見える場合はどのように人々はOAuthのものと開発に通常作業を行う非DEV非ローカル接続環境を?


私はいつか戻って答えた:stackoverflow.com/a/10410838/604511
Jesvin Jose

回答:


133

2016年10月更新:最も簡単:常にを指すlvh.meを使用し127.0.0.1ます。

以前の回答

コールバック要求はブラウザーによって発行されるため、HTTPリダイレクト応答として、.hostsファイルまたは同等のものをセットアップしてlocalhost、127.0.0.1以外のドメインを指すようにすることができます。

たとえば、次のコールバックをTwitterに登録するとしますhttp://www.publicdomain.com/callback/www.publicdomain.comhostsファイルで127.0.0.1 を指していること、およびtwitterが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などのlocalhost URL]を短くして、短縮されたURLをTwitterアプリのコールバックとして登録するだけです。

これは、.hostsファイルをいじるよりも簡単です。

現在(Aug '14)bit.lyではlocalhostへのリンク転送が許可されていないことに注意してください。ただし、Googleリンクショートナーは機能します。

PS編集:(Nov '18):Googleリンクショートナーがlocalhostまたは127.0.0.1のサポートを停止しました。


3
私はサーバーがcallbackurlを呼び出していると思いましたが、oauthがクライアントをメッセンジャーとして使用し、サーバー間で接続が行われないため、はるかに簡単になっていることに気づきました。
クリスチャンブノワ

10
lvh.meはLevi Cook(gist.github.com/levicook/563675を参照)と呼ばれる紳士が所有しており、個人的に所有されていることは注目に値します。彼はいい人のように見えますが、グローバルな機関によって正式に承認されたドメインではないため、「理論的には」ある時点で機能しなくなる可能性があります。
Mario Peshev 2017年

4
これを書いている時点では、Googleは.meリダイレクトURLに(などの)凝ったドメイン拡張を許可していないようです。その結果、lvh.meが機能しませんでした。代わりにlacolhost.comで成功しました。
PullJosh

3
lvh.meの所有者は、すべての認証コードの収集を開始することもできます...
テイラーブキャナン

2
@JonNylander認証レコードと状態を透過的に保存し、ローカルホストにリダイレクトする別のサイトを指すようにDNSレコードを簡単に変更できます。DNSを定期的にチェックしない限り、DNSにアクセスできるようになるまで気付かないでしょう。すぐに気付くのは、ブラウザコンテキスト外で使用している人だけです。
テイラーブキャナン

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で実行していました。
ミゲルレイエス

3

Googleでは、http://webporject.devor .locおよび.etc を使用したローカルホストでのテスト認証API と、ローカルurl(http://webporject.dev)も短縮したgoogleショートリンクも許可していませんbit.ly:)。Googleは次で始まるURLのみを受け入れますhttp://localhost/...

google auth apiをテストする場合は、次の手順に従ってください...

新しいエイリアスを設定

使用する場合openserverは、設定パネルに移動しaliases tab、ドロップダウンをクリックしてクリックし、それを見つけlocalhostて選択します。

ここで、最初のドロップダウンの隣にある次のドロップダウンをクリックして、ローカルWebプロジェクトのルートフォルダーを選択する必要があります。

と呼ばれるボタンをクリックしてaddopenseverを再起動します。

このリンクでローカルプロジェクトを利用できるようになりました。http://localhost/ このローカルURLをredirect urlフィールドにGoogle認証APIに貼り付けることもできます...


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
flow3r

3

Macユーザーの場合は、/etc/hostsファイルを編集します。sudo vi /etc/hosts読み取り専用の場合は使用する必要があります。承認後、oauthサーバーはコールバックURLを送信します。そのコールバックURLはローカルブラウザーでレンダリングされるため、ローカルDNS設定が機能します。

127.0.0.1       mylocal.com

0

参照としてGoogle OAuthを使用する

  • あなたの中のOAuthクライアント ]タブ

    1. 承認されたJavaScriptオリジン URIにアプリURIの例(http://localhost:3000)を追加する
  • あなたの中のOAuth同意画面

    1. 追加mywebsite.com承認済みドメイン
  • WindowsまたはLinuxでホストファイルを編集しWindows C:\Windows\System32\Drivers\etc\hosts Linux : /etc/hostsて追加します127.0.0.1 mywebsite.com (他に127.0.0.1がある場合はコメント化します)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.