私はこの質問を正しく聞いているかわかりません。私はGoogle Sign-Inを使用して、Webアプリケーション上の特定のアクションまたはアプリケーションの特定のページに対してユーザーを認証したいと考えています。Google Sign-In、セッション状態の保存方法
私はGoogle Sign-Inの指示に従っています。私はid_tokenを取得し、それを私のサーバーに渡してからtokeninfoエンドポイントを使用してid_tokenを確認し、ユーザー情報のid_tokenを交換します。
id_tokenを取得してサーバーに渡してから、tokeninfoエンドポイントに渡して、PHPの動作を実行するたびに確認するか、認証された状態を格納してこれらの呼び出しをすべて防止する必要がありますかユーザーが認証されるとtokeninfoエンドポイントに移動しますか?
私はその最後の部分についてどうやって行くのか分かりません。今私はこのようなjavascriptで私のサーバーにトークンを渡しています。
function sendToken(googleUser) {
var id_token = googleUser.getAuthResponse().id_token;
console.log(id_token);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://app.mydomain.com/test.php');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
console.log(xhr.responseText);
};
xhr.send('idtoken=' + id_token);
}
次に、私はPHPでこれをやっています。
$url = 'https://www.googleapis.com/oauth2/v3/tokeninfo';
$myvars = 'id_token=' . $_POST["idtoken"];
$ch = curl_init($url );
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $myvars);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch );
私は、ユーザーを検証し、ユーザーはGoogleによって検証された場合には、データベースに挿入するなどの措置を継続する$応答を確認してください。私は、ユーザーがデータベースにデータを入力する必要があるたびにこの検証を行い、それは私にとっては遅いようです。だから、私は物事をより良くするためにいくつかのステップを欠いていると確信しています。
ありがとうございます!