Added Etsy Auth

This commit is contained in:
Hickmeister
2025-01-04 14:27:31 +00:00
parent 7dd648edbb
commit 9dd13bc802
3 changed files with 85 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
<?php
include '/mnt/www-live/TechOdyssey_Designs_Dashboard/assets/php/session_check.php';
require '/mnt/www-live/TechOdyssey_Designs_Dashboard/assets/php/envLoader.php'; // Load envLoader from php/
loadEnv(__DIR__ . '/../../../.env'); // Go up three levels to root for .env
$clientId = $_ENV['ETSY_KEYSTRING'];
$redirectUri = $_ENV['ETSY_REDIRECT_URI'];
$scope = 'transactions_r';
$state = bin2hex(random_bytes(16));
session_start();
$_SESSION['oauth_state'] = $state;
// Authorization URL
$url = "https://www.etsy.com/oauth/connect?" . http_build_query([
'response_type' => 'code',
'client_id' => $clientId,
'redirect_uri' => $redirectUri,
'scope' => $scope,
'state' => $state
]);
header("Location: $url");
exit;
?>

View File

@@ -0,0 +1,33 @@
<?php
include '/mnt/www-live/TechOdyssey_Designs_Dashboard/assets/php/session_check.php';
require '/mnt/www-live/TechOdyssey_Designs_Dashboard/assets/php/envLoader.php'; // Load envLoader from php/
loadEnv(__DIR__ . '/../../../.env'); // Go up three levels to find .env
session_start();
if ($_GET['state'] !== $_SESSION['oauth_state']) {
die('Invalid state. Possible CSRF attack.');
}
$code = $_GET['code'];
$clientId = $_ENV['ETSY_KEYSTRING'];
$clientSecret = $_ENV['ETSY_SECRET'];
$redirectUri = $_ENV['ETSY_REDIRECT_URI'];
$data = [
'grant_type' => 'authorization_code',
'client_id' => $clientId,
'client_secret' => $clientSecret,
'code' => $code,
'redirect_uri' => $redirectUri
];
$ch = curl_init("https://api.etsy.com/v3/public/oauth/token");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$response = curl_exec($ch);
$tokens = json_decode($response, true);
file_put

View File

@@ -0,0 +1,27 @@
<?php
include '/mnt/www-live/TechOdyssey_Designs_Dashboard/assets/php/session_check.php';
require '/mnt/www-live/TechOdyssey_Designs_Dashboard/assets/php/envLoader.php'; // Load envLoader from php/
loadEnv(__DIR__ . '/../../../.env'); // Go up three levels to find .env
function refreshAccessToken() {
$tokens = json_decode(file_get_contents('etsyTokens.json'), true);
$refreshToken = $tokens['refresh_token'];
$data = [
'grant_type' => 'refresh_token',
'client_id' => $_ENV['ETSY_KEYSTRING'],
'client_secret' => $_ENV['ETSY_SECRET'],
'refresh_token' => $refreshToken
];
$ch = curl_init("https://api.etsy.com/v3/public/oauth/token");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$response = curl_exec($ch);
$newTokens = json_decode($response, true);
file_put_contents('etsyTokens.json', json_encode($newTokens));
echo "Token refreshed successfully.";
}
?>