0

OAuth 2.0 を使用して Google にログインしようとしています。一時的な認証コードを取得し、それを使用してaccess_token.

<form action="https://accounts.google.com/o/oauth2/token" method="post">
<input type="text" name="code" value='##code##'/>
<input type="text" name="client_id" value='##client_id##'/>
<input type="text" name="client_secret" value='##client_secret##'/>
<input type="text" name="redirect_uri" value='http://boomroom.tv/test.php'/>
<input type="text" name="grant_type" value='authorization_code'/>
<input type="submit" /></form>

JSON で access_token を取得した後、URL にリダイレクトされず、'https://accounts.google.com/o/oauth2/token' ページにとどまります。理由はわかりません。私は何か間違ったことをしていますか?

4

2 に答える 2

2

アクセス トークンステップの交換承認コードに関連するリダイレクトはありません。ここでは、アクセス トークンリフレッシュ トークンを直接応答として取得するサーバー側の POST 要求を使用する必要があります。あなたの例では、ユーザーのブラウザーはそのような要求を送信しますが、その応答をリッスンしません。

クライアント シークレットは、Web サイトのソース コードでパブリックにアクセスできることに注意してください。

PHP でサーバー側の POST リクエストを実行するには、cURL を使用するなど、複数の方法があります。

于 2012-10-05T15:19:17.667 に答える
1

これをサーバー側で行いたい場合、Jan の応答は正しいです。

ブラウザでクライアント側の処理を行いたい場合は、別の OAuth 2 for Web Applications フローを使用できます。

https://developers.google.com/youtube/2.0/developers_guide_protocol_oauth2#OAuth2_Client_Side_Web_Applications_Flow

JavaScript 用の Google API クライアント ライブラリを使用すると、これを非常に簡単に実装できます。

https://code.google.com/p/google-api-javascript-client/wiki/Authentication

また、次の場所からコードを借りることができるライブ サンプルがあります。

http://gdata-samples.googlecode.com/svn/trunk/gdata/youtube_upload_cors.html

于 2012-10-05T19:41:27.150 に答える