私はGoogle AppsをPHPアプリケーションに統合しようとしています。私はすでにログインIDとパスワードを入力した後にユーザーにセッションIDを割り当てるログインシステムを持っています。ユーザーがログインするとデータベースに保存されます。セッションIDは、一定時間(ユーザーが設定可能) 5分、15分、60分...とすることができます)。そのセッションIDは、ユーザーがまだログインしているかどうかを確認するためにURLに渡されます。ログアウトすると、セッションIDがデータベースから削除されます。Google AppsとOAuthのベストプラクティス
私は、自分のGoogle IDをデータベースに保存して、ログインしたり、アクセストークンを要求したり、ユーザー情報を照会したり、Google IDがデータベースにあるかどうかを確認したりして、このユーザーのセッションID。他のAPIを照会できるようにしたいので、データベースにアクセストークンjsonも格納します。ユーザーがログアウトすると、アクセストークンもデータベースから削除されます。
:しかし、いくつかのものは私が私のワークフローに不安作るの不格好な感じ
は、これは私のユーザーが自分のGoogleアカウントを使ってログインすることができ、動作し、私はAPIのは、保存されたaccess_tokenはを使用して照会することができますforce_approvalでrefresh_tokenを取得した場合、新しいアクセストークンを取得するためにこのリフレッシュトークンを使用する必要があります。データベースから古いものを削除し、ユーザーが再度ログインしたときに新しいトークンを入力する必要はありません。一方、ログイン時には誰がまだ誰なのかわからないので、どのリフレッシュトークンを使うのか分かりません。たぶん私はリフレッシュトークンが何であるか誤解しています。また、毎回承認を強制したくないので、その場合はrefresh_tokenを使用することもできません。
としては、ユーザーが自分のセッションがいつまで続くかを決定することができ、前に言った、しかし、Googleのaccess_tokenは、常に3600秒後に期限が切れます。ユーザーがシステムで1時間働くと、突然Google APIが突然失敗し、再度ログインすると、本当にばかげてしまうだろう。 Google OAuthプレイグラウンドでは、「有効期限が切れる前にトークンを自動更新する」チェックボックスが表示されますが、これを行う方法はわかりません。ここでリフレッシュトークンを使用する必要がありますか?または、単に新しいトークンをバックグラウンドで要求します(私が承認を強制していない場合)?
現時点では、userinfoクエリ(https://www.googleapis.com/oauth2/v2/userinfo)を使用してユーザーIDを検索していますが、tokeninfo(https: /www.googleapis.com/oauth2/v1/tokeninfo)。 Tokeninfoはoauthプレイグラウンドにはリストされていませんが、トークンが有効である期間が表示されます(ただし、これも自分で計算できます)。一つは他のものよりも好ましいですか?
データベース(access_token、id_token、expires_in、およびtoken_type)にjsonオブジェクト全体を格納していますが、私はaccess_tokenを格納するだけでアプリケーションが完全に機能すると感じます(expires_in時間変更)。例えばid_tokenを格納する必要がありますか?
私は時々非常に、誰もが情報の他の良い情報源を知っているなら、私は同様にそれらに興味があり、欠け(developers.google.comで)Googleのドキュメントを見つけます。
あなたのご意見をお寄せいただきありがとうございます。私はあなたが提供した記事を読んで、彼らが道に沿って私を助けてくれることを願っています。 – Bram