// Google Oauth2.0 JWT
function JWT() {
$time = time();
$header = ['alg' => 'RS256', 'typ' => 'JWT'];
$claims = [
'iss' => 'app@01.iam.gserviceaccount.com',
'scope' => 'https://www.googleapis.com/auth/photoslibrary',
'aud' => 'https://www.googleapis.com/oauth2/v4/token',
'exp' => $time + 3600,
'iat' => $time
];
$msg = Base64URLEncode(json_encode($header)) . '.' . Base64URLEncode(json_encode($claims));
$privateKey = "-----BEGIN PRIVATE KEY-----\nKEY\n-----END PRIVATE KEY-----\n";
$sign = '';
openssl_sign($msg, $sign, $privateKey, 'SHA256');
return $msg . '.' . Base64URLEncode($sign);
}
function Base64URLEncode($input) {
return str_replace('=', '', strtr(base64_encode($input), '+/', '-_'));
}
echo JWT();