Я работаю над реализацией аутентификации OAUTH2.0 с использованием php. У меня есть следующий фрагмент кода, полученный из inte rnet.
// Start the login process by sending the user to Github's authorization page
if(get('action') == 'login') {
unset($_SESSION['access_token']);
unset($_SESSION['access_token_postman']);
if(isset($_SERVER['HTTP_AUTHORIZATION'])){
$_SESSION['access_token_postman'] = $_SERVER['HTTP_AUTHORIZATION'];
}
// Generate a random hash and store in the session for security
$_SESSION['state'] = hash('sha256', microtime(TRUE).rand().$_SERVER['REMOTE_ADDR']);
$params = array(
'client_id' => OAUTH2_CLIENT_ID,
'redirect_uri' => OAUTH2_REDIRECT_URI,
'scope' => 'user',
'state' => $_SESSION['state']
);
// Redirect the user to Github's authorization page
header('Location: ' . $authorizeURL . '?' . http_build_query($params));
die();
}
Я инициализировал сеанс с помощью session_start (); вверху.
Но проблема, с которой я сталкиваюсь, заключается в том, что я не могу получить доступ к $ _SESSION ['access_token_postman'] после условия if. Я знаю, что значение установлено в условии if, так как я могу напечатать его в условии if.
Та же проблема также и с $ _SESSION ['state']. Я не могу получить доступ к сеансу после условия if.
Может кто-нибудь сообщить мне, какую ошибку я делаю?
Спасибо.