22

node.js サーバーで Google 認証 API にアクセスしようとしていますが、方法がわかりません。基本的に、ユーザーがログインページにアクセスし、認証ボタンをクリックすると、サーバーがユーザーを Google API にリダイレクトし、ユーザーが自分のアプリに自分のデータへのアクセスを許可し、Google API がユーザーを自分のサイトにリダイレクトします。認可トークン。

oauth2 に必要な URL を設定しましたが、動作しているようです (Web ブラウザーに貼り付けると、Google 認証ページにリダイレクトされます)。私の質問に答えているように見えるこの投稿を見ましたが、エクスプレスコード部分を処理する方法がわかりません。

ここに私が使用しているコードがあります:

https.get(options, function(res) {
    var retrieved_data = '';
    res.on('data', function(data) { retrieved_data += data; });
    res.on('end', function() { 
        // FIXME
        client_response.writeHead(302, {"Content-Type" : "text/plain", "Location" : res.headers.location});
        client_response.end(retrieved_data);    
    });
});

しかし、このメソッドはクライアント ページでエラーを返します (私の ajax リクエストのエラー フィールドによって発生します)。「場所」情報なしで HTTP コードを 200 に変更すると、クライアントに「Moved Temporarily」ページとボタンが表示され、Google API 認証ページにリダイレクトされます。

なにか提案を ?

4

4 に答える 4

9

Burcu Dogan が述べたように、Google は Google API にアクセスするための公式クライアント ライブラリをリリースしました。ここにあります: https://github.com/google/google-api-nodejs-client/

于 2014-01-03T14:18:57.740 に答える
9

そのタスクには既存のモジュールを使用することをお勧めします。everyauthは、Google への oauth2 アクセスだけでなく、それを提供する他のほとんどのプラットフォームにもアクセスできるようにするモジュールです。私は自分のプロジェクトで Twitter にアクセスするためにこれを使用しています。express統合性もあります。

The Node Toolboxでより多くの代替手段を探すことができます。パスポートが思い浮かびます。

于 2012-04-12T12:50:28.310 に答える
8

Passportで良い結果が得られました(MS 認証スキームとは関係ありません!)。私は最初にeveryauthを試しましたが、IMOパスポートはexpressjsの慣習により適しています。

すぐに使用できる Google 認証プロバイダーがあります: http://passportjs.org/guide/google/

于 2013-02-01T10:37:20.827 に答える
3

私の Node.JS + Google カレンダー プロジェクトをこちらからチェックアウトしてください: https://github.com/berryboy/google-calendar

Google oauth の使用例もいくつかあります。

于 2012-11-23T05:25:53.533 に答える