2017-11-24 8 views
0

私はSiteAにユーザー情報(名前、所在地、部署など)を保存しています。 バックエンドは、フロントエンドに情報を与えるREST WSを公開しています。サイトはGoogle OAuth2認証を使用しています - ユーザーはGoogleアカウントを使用してログインします。 OAuth2では、ユーザー名とパスワードを要求せずにGoogleがログインを処理するようにしました。 Googleは、ユーザーのトークンを生成するためにclient_idとclient_secretと共に使用される認証コードを生成します。Google OAuth2を使用してプログラムでログインする

私はSiteBを持っています。私は1日に1回実行される予定の仕事を作成しています。 SiteAが提供するREST WS APIへのリクエストで使用できるセキュリティトークンを取得し、必要な情報を取得できるように、SiteAにプログラムでログインする必要があります。

私はオンライン同様の質問を見つけることができませんでした。すべては、通常、ユーザーがブラウザを開いてapproaval URLに移動するまで終了します。

似た何かがGoogle Drive API - OAuth2.0: How to Automate Authentication Process? Doubts and Questionsですが、それは、ログインせずにGoogleドライブへの接続についてです。

私はそれが可能であることを疑い始めています。どのようにシステム間のコミュニケーションのこの方法を実装するかを誰かが理解しましたか?

私はの事はSiteAのDBに接続し、手動でレコードを抽出し、それがサイトAとのSiteBでログインを複製するだろうされる可能性が唯一の選択肢。私が求めていた何

+0

次に、SiteAからSiteBへの内部リダイレクトをアクセストークンとその他の情報とともに追加する必要があります。あなたがしようとしていることはお勧めできません。 –

+0

このようなケースに対処するための推奨される方法は何ですか?SiteBはSiteBとして多くのユーザーによって使用されています。彼らは同じDBを共有していませんが、内部に共通のテーブルを持っています。 SiteAを上記の説明を達成するために変更することはお勧めしません。 –

+0

ユーザーは認証されたSIteAを持っていますが、将来はSiteB上でそのデータを必要とするため、より多くの機能が必要な場合は、SiteAまたはSiteBからデータを送信するメソッドを構築する必要があります。したがって、これにはオーバーヘッドが伴います。最後に、SiteBの認証後にSiteBに適切にユーザーをリダイレクトする方がはるかにクリーンです。この方法では、リダイレクトが表示されないブラウザもあります。 –

答えて

0

は質問を書いている時点では不可能です。私たちは、寿命を変更

connection.setRequestProperty("Authorization", token); 

:我々は問題を解決するためにやった は、サイトAにログインし、SiteBのからのリクエストのヘッダにそれにそれを設定するために使用されるアカウントのトークンの寿命を延長することですこれは内部システムなので、トークンの長寿命は問題ではありません。

別のオプションは、How to get offline token and refresh token and auto-refresh access to Google APIに従うと、オフライントークンを生成することですが、考え方は同じです。

これは誰かを助けることを望みます。

関連する問題