フロントエンドは 100% JS です。ユーザーがサインインボタンをクリックすると、次のコンテンツを含むauthResult['code']
ajax 経由で受信および送信されます。localhost/api/user/login
$code = $data['code'];
require_once 'Google/Client.php';
$client = new Google_Client();
$client->setClientId('xxxxxx');
$client->setClientSecret('xxxxx');
$client->setRedirectUri('http://localhost:8080');
$client->setScopes('email'); //Why do I need this? I already set scope in JS.
$client->authenticate($code); //It fails here. with no error. just 400 bad request.
$token = json_decode($client->getAccessToken());
$reqUrl = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=' .
$token->access_token;
$req = new Google_HttpRequest($reqUrl);
$tokenInfo = json_decode(
$client::getIo()->authenticatedRequest($req)->getResponseBody());
//Check errors.
//Save user personal info in database
//Set login sessions
- javascript で既にスコープを設定しているのに、スコープを設定する必要があるのはなぜですか?
- 認証関数が呼び出されたときに失敗するのはなぜですか? エラーは発生しません。
- バックエンドにあるのに setRedirectUri() が必要なのはなぜですか?