Poznanie frameworka to nie jest kwestia 1/2 dni. A sprawa dla mnie pilna.
Robiłem research i przeglądałem dokumentację.
Mam obecnie coś takiego:
index.php
<?php
$state = "test";
$nonce = "";
'client_id' => '0oacd7ej5guj3oTbj0h7',
'response_type' => 'code',
'response_mode' => 'query',
'scope' => 'openid profile',
'redirect_uri' => 'http://localhost/okta/login_callback.php',
'state' => $state,
'nonce' => $nonce
);
$query = http_build_query($data);
header('Location: ' . 'https://dev-220754.oktapreview.com/oauth2/default/v1/authorize?'.$query); ?>
login_callback.php
<?php
$state = "test";
throw new \Exception('State does not match.');
}
$exchange = exchangeCode($_REQUEST['code']);
}
function exchangeCode($code) {
$client_id = '0oacd7ej5guj3oTbj0h7';
$client_secret = '4qDKVVp5h4JV7uVFt-dSKwMc_sBK8KqffOZZMw0M';
$authHeaderSecret = base64_encode( $client_id.':'.$client_secret ); 'grant_type' => 'authorization_code',
'code' => $code
);
$query = http_build_query($dane);
'Authorization: Basic ' . $authHeaderSecret,
'Accept: application/json',
'Content-Type: application/x-www-form-urlencoded',
'Connection: close',
'Content-Length: 0'
);
$url = 'https://dev-220754.oktapreview.com/oauth2/default/v1/token?' . $query;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, 1);
$output = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if(curl_error($ch)) {
$httpcode = 500;
}
curl_close($ch);
return json_decode($output);
}
Loguje się poprawnie. Jestem przekierowywany do pliku login_callback.php z wartością code.
Jednak w funckji exchangeCode CURLINFO_HTTP_CODE zwraca Status 0 bool(false)
Na prawdę brak mi już siły. Co robię źle?