現在、2種類の許可タイプ、password
およびrefresh_token
を処理しているOAuth2サーバを実装しました。FacebookやGoogleまたは他のサードパーティを使用しているモバイルクライアントからのOAuth2認証
今、私のクライアントが自分のFacebookアカウントまたはGoogleアカウントを使用して認証する必要がありますが、私の質問は同様のフローに適用される可能性があります。
FacebookやGoogleの認証を行うには、アプリケーションでデータを取得するためにアプリケーションを認証する必要があります。実際にFacebookやGoogleにアクセスしてフェッチする必要があります。
私はそれを行う方法は2つありますが。
ユーザーは、自分のFacebookアカウントにログインし、アプリケーションを認証してアクセストークンを取得します。それは自分のサーバーにアクセストークンを送り、私はそれを使ってデータを取得します。
ユーザーはFacebookアカウントにログインし、アプリケーションを認証し、認証コードを取得し、サーバーに送信し、認証コードを使用してユーザーのアクセストークンを取得し、データ。
あなたの経験やベストプラクティス(私はこの種のワークフローを見つけることができませんでした)から、最良の選択肢は何ですか?
本当に良い点があります。私はちょうどそのような振る舞いを実装しようとしました。テスト目的のために私は手動で 'authorize'リクエストを行いますが、' redirect_uri'を提供する必要があり、 'authorization_code'で' access_token'を取得するために再利用する必要があります。私はここに行方不明のものがありますか?この 'redirect_uri'の必要はありません。なぜなら、' authorization_code'はモバイルデバイスから取得し、自分のサーバー上のカスタム許可タイプとして私のサーバーに送信する必要があるからです。何かヒント? – Trent
@Trent私の理解によると、 'redirect_uri'はリダイレクションメソッドが使われる場合に' access_code'を得るためだけに必要となります。あなたがaccess_codeを持っているなら、あなたはaccess_tokenを得ることができ、それゆえ認可されたリソースへのすべてのアクセスを得ることができます。私は私の個人的なプロジェクトのために 'googleを使ったログイン 'を使っていました。リダイレクトを使わず、代わりにポップアップダイアログを使っています。私はモバイル用のもので多くの経験はありませんが、 'redirect_uri'を必要としないデバイスから' access_code'を得る場合には、 –
afaik、 'access_code'を得る他の方法はありません。 'https://graph.facebook.com/oauth/authorize?redirect_uri =&client_id = someappid&response_type = code'は' https://www.facebook.com/dialog/oauth?redirect_uri&client_id=someappid&response_type=code 'にリダイレクトされます。エラーは 'redirect_uri'が見つからないため、クライアントとサーバーの両方に' redirect_uri'というダミーを設定しているかもしれませんが、正しくは感じられません。 – Trent