前提・実現したいこと
Googleアカウントに紐付いているGoogle My businessの情報を取得するため、Google My business APIを使用しています。その際に必要なトークンの扱い方に関する質問です。
######実装した流れ
1.GCPにてプロジェクトを作成。
2.上記プロジェクトにてGoogle My business APIの使用許可を申請。
3.許可がおりたのでGoogle My business APIを有効にして、「認証情報」より「OAuth クライアント ID の作成」をする。
4.上記"OAuthクライアントID"のクライアントID、クライアントシークレットを元に、一度Oauth認証をするコードを書き、Oauth認証をする。その際に取得したリフレッリュトークンをメモする。
5.上記リフレッシュトークンを元に、アクセストークンを再度発行してもらい、そのアクセストークンを元にAPIにリクエストを送るコードを書く。
6.無事にAPIより情報を取得できた。
発生している問題
問題というより疑問なのですが、上記の5の部分のコードは下記の通りなのですが、リフレッシュトークンはこの様に使いまわしてもセキュリティ的には問題ないのでしょうか。
もちろん漏洩してはいけないトークンなどは環境変数に格納しており、Githubなどにはpushしていません。
私見の限り、サーバーに侵入されトークンを記載しているファイル等にアクセスされない限り、問題はないと思うのですが、それ以外にセキュリティ的に問題はありますでしょうか。
もしくは更にセキュアにできる方法ございましたらご教授いただけますと幸いです。
php
1 2 $params = array( 3 'refresh_token' => REFRESH_TOKEN, //4でメモしたリフレッシュトークン 4 'grant_type' => 'refresh_token', 5 'client_id' => CLIENT_KEY, 6 'client_secret' =>CLIENT_SECRET, 7 ); 8 9 $options = array('http' => array( 10 'method' => 'POST', 11 'content' => http_build_query($params), 12 )); 13 $res = file_get_contents('https://www.googleapis.com/oauth2/v4/token', false, stream_context_create($options)); 14 15 $token = json_decode($res, true); 16 17 $access_token = $token['access_token']; 18 19//ここまででリフレッシュトークンを元にアクセストークンを再発行してもらっている。 20 21 22//下記でAPIより情報を取得 23 $params = array('access_token' => $access_token); 24 $res = file_get_contents('APIのエンドポイント'. '?' . http_build_query($params));
回答1件
あなたの回答
tips
プレビュー